美文网首页
Matplotlib绘制误差条形图、饼图、等高线图、3D柱形图

Matplotlib绘制误差条形图、饼图、等高线图、3D柱形图

作者: XHHP | 来源:发表于2019-07-25 19:44 被阅读0次

(1)、导入库

import numpy as np
import matplotlib.pyplot as plt

(2)、误差条形图

#误差条形图
x = np.arange(0,10,1)   #生成一个数组
y = np.log(x)   #根据x计算y值
xe = 0.1 * np.abs(np.random.randn(len(y)))  #通过标准正态分布得出误差值
#将误差值赋值给yerr这个属性
plt.bar(x,y,yerr = xe, width = 0.4, align = 'center', ecolor = 'r', color = 'cyan', label = 'exxperiment #1')
        
plt.xlabel('# measurement')     #x轴标签
plt.ylabel('Measured values')   #y轴标签
plt.title('Measurement')        #题目
plt.legend(loc = 'upper left')  #图例放置的位置
在这里插入图片描述

(3)、饼图

#饼图
plt.figure(1, figsize = (8,8))
ax = plt.axes([0.1 ,0.1, 0.8, 0.8])

labels = 'Spring', 'Summer', 'Autumn', 'Winter'#标签
values = [15, 16, 16, 28]       #数据集
explode = [0.1,0.1,0.1,0.1]     #比例
#values代表数据,explode比例,label标签,autopct百分比的格式
plt.pie(values, explode= explode, labels = labels, autopct = '%1.1f%%')

plt.title('Rainy day by season')    #设置标题
在这里插入图片描述

(4)、等高线图

#等高线图
import matplotlib as mpl
def process_signals(x,y):
    return (1- (x**2 + y**2)) *np.exp(-y ** 3 / 3)      #获取等高线的函数

x = np.arange(-1.5,1.5,0.1)
y = np.arange(-1.5,1.5,0.1)

X,Y=np.meshgrid(x, y)
Z = process_signals(X,Y)
N = np.arange(-1, 1.5, 0.3)
#Z代表等高线竖直,N代表水平数,linewidths代表线的宽度,cmap是设置颜色的
CS = plt.contour(Z, N ,linewidths = 2, cmap=mpl.cm.jet) #contour函数用来绘制等高线图,
plt.clabel(CS,inline = True, fmt = '%1.1f',fontsize = 10) #clabel增加标签
plt.colorbar(CS)    #colorbar填充颜色
在这里插入图片描述

(5)、3D柱形图

#3D柱形图
import matplotlib.dates as mdates
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
import numpy as py

mpl.rcParams['font.size'] = 10 #设定全局参数,字体大小

fig = plt.figure()   #获取figure对象
ax = fig.add_subplot(111, projection = '3d') #获取Axes对象

for z in [2012,2013,2014,2015]:
    xs= range(1,13)     #随机生成x坐标
    ys=1000*np.random.randn(12)     #随机生成y坐标
    
    color = plt.cm.Set2(py.random.choice(range(plt.cm.Set2.N)))   #生成随机的颜色
    #xs代表x轴,ys代表y轴,zs代表z轴,zdir代表垂直方向为y,颜色color
    ax.bar(xs,ys,zs=z,zdir='y',color=color,alpha=0.8)   #用bar增加3D图象

ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))
ax.yaxis.set_major_locator(mpl.ticker.FixedLocator (ys))
ax.set_xlabel('Month')
ax.set_ylabel('Year')
ax.set_zlabel('Sales Net [usd]')
在这里插入图片描述

相关文章

网友评论

      本文标题:Matplotlib绘制误差条形图、饼图、等高线图、3D柱形图

      本文链接:https://www.haomeiwen.com/subject/hqykrctx.html