简单汇总基础的图表函数
plt.plot(x,y,fmt,……) | 坐标图 |
plt.boxplot(date,notch,position) | 箱型图 |
plt.bar(left,height,width,bottom) | 条形图 |
plt.barh(width,bottom,left,height) | 横向条形图 |
plt.polar(theta,r) | 极坐标图 |
plt.pie(date,explode) | 饼图 |
plt.psd(x,NFFT=256,pad_to,Fs) | 谱图 |
plt.scatter(x,y) | 散点图 |
plt.step(x,y,where) | 布阶图 |
plt.hist(x,bins,normed) | 直方图 |
plt.contour(X,Y,Z,N) | 等值图 |
plt.vlines() | 垂直图 |
plt.steam(x,y,linefmt,markerfmt) | 柴火图 |
plt.plot_date() | 数据日期 |
常见图表的简单使用
饼图(对于百分率相关数据的展示非常好)
plt.pie()
备注:labels是设定饼图每一块的标签,sizes是所给出标签对应在饼图中的尺寸比例,explode是设置饼图某部分突出,autopct是设置饼图中间百分数的显示方式,shadow是设置饼图是否带有阴影,startangle是设置饼图起始角度,plt.axis('equal')是设置图片尺寸为正方形
import matplotlib.pyplot as plt
labels = 'Chinese','Math','English','PE'
sizes = [30,30,25,15]
explode = (0,0.2,0,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.axis('equal')
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/33286cb9d0730756e185cb8fe4cf6ca6.png)
直方图(观看数据在不同层次中的分布)
plt.hist(x,bins,normed)
备注:mu指的是均值,sigma指的是方差,plt.title(' ')是添加标题,
x是给定的一个数组,bins是指直方图中矩形的个数,normed=True如果会报错的话可以换成density=True
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
mu,sigma=100,20
a = np.random.normal(mu,sigma,size=100)
plt.hist(a,20,density=True,histtype='stepfilled',facecolor='b',alpha=0.75)
plt.title('Histogram')
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/8659dbaafe3ae2007eb30bce9d866e01.png)
极坐标图(能很好地在角度空间内展现数据)
plt.polar(theta,r)直接绘制
plt.bar(left,height,width,bottom)先形成对象后绘制
备注:N表示绘制极坐标图中数据的个数,theta对应的是left,radii对应的是height,width对应的是width,子绘图区域形成了一个对象ax,for循环用于改变极坐标图中不同部分的颜色
import matplotlib.pyplot as plt
import numpy as np
N = 20
theta = np.linspace(0.0,2*np.pi,N,endpoint = False)
radii = 10*np.random.rand(N)
width = np.pi/4*np.random.rand(N)
ax = plt.subplot(111,projection='polar')
bars = ax.bar(theta,radii,width = width,bottom=0.0)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.vividis(r/10.))
bar.set_alpha(0.5)
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/2c09c0eeef5ea2ef9cfbc9d455e93165.png)
散点图
plt.scatter(x,y)直接绘制
plt.plot(x,y,fmt,……)先形成对象后绘制
备注:np.random.randn(100)表示随机生成100个值,'o'表示以点的形式展现
import matplotlib.pyplot as plt
import numpy as np
fig,ax = plt.subplots()
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('Simple Scatter')
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/2127ac6ef1831127a454668ab64f0087.png)