本来是想出一个pyplot的教程记录一下,但是matplotlib这个库实在是太强大了,当然它的子库pyplot也是非常强大,所以我就写了一些常用的图形例子供大家参考使用。如果我们需要绘制更多的图形可以自行去官网或者博客查阅学习,学无止境!
1.饼图的绘制
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs' #饼图的标签
sizes = [15,30,45,10] #每个饼块的比例
explode = (0,0.1,0,0) #第二块突出
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',\
pctdistance=0.75,shadow=False,startangle=90)
plt.axis('equal') #饼图成圆形
plt.legend(loc=(0.8,0.8)) #显示图例
plt.savefig('饼图.png',dpi=600,bbox_inches='tight') #保存图片
plt.show() #展示图片
2.直方图的绘制
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0) #随机数种子
mu,sigma = 100,20 #均值和标准差
a = np.random.normal(mu,sigma,size=100) #产生具有正态分布的数组
plt.hist(a,20,density=1,histtype='bar',\
facecolor='blue',edgecolor='black',alpha=0.7)
plt.title('Histogram') #直方图标题
plt.savefig('直方图.png',dpi=600,bbox_inches='tight') #保存图片
plt.show() #展示图片
3.极坐标图的绘制
import numpy as np
import matplotlib.pyplot as plt
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.viridis(r/10.))
bar.set_alpha(0.5)
plt.savefig('极坐标图.png',dpi=600) #保存图片
plt.show() #展示图片
4.散点图的绘制
import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots() #面向对象绘制
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('Simple Scatter')
plt.savefig('散点图.png',dpi=600,bbox_inches='tight') #保存图片
plt.show() #展示图片
5.曲线图的绘制
import matplotlib.pyplot as plt
import numpy as np
#import matplotlib
#matplotlib.rcParams['font.family']='Kaiti'#全局字体修改
#matplotlib.rcParams['font.size']=20
a = np.arange(10)
plt.plot(a,a*1.5,'y--.', a,a*2.5,':^', a,a*3.5,'-*', a,a*4.5)
plt.xlabel("横轴",fontproperties='Kaiti',fontsize=20)
plt.ylabel("纵轴",fontproperties='Kaiti',fontsize=20)
plt.savefig('test',dpi=600,bbox_inches='tight')
plt.show()
如有错误或者不足之处,欢迎大家留言指正!