Python常用包学习(三)matplotlib包(理论+动手实践)
Python最常用的绘图库,提供了一整套十分适合交互式绘图的命令API,比较方便的就可以将其嵌入到GUI应用程序中。
Figure和Subplot
- Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象。
- Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
#解决中文显示问题
mpl.rcParams['font.sans-serif']=[u'SimHei']
mpl.rcParams['axes.unicode_minus']=False
#获取figure对象
fig=plt.figure(figsize=(8,6))
#在figure上创建axes对象
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
#在当前axes上绘制曲线(ax3)
# print(np.random.randn(50).cumsum())
plt.plot(np.random.randn(50).cumsum(),'k--')
#在ax1上绘制曲线
ax1.hist(np.random.rand(300),bins=20,color='k',alpha=0.3)
#在ax2上绘制曲线
ax2.scatter(np.arange(30),np.arange(30)+3*np.random.randn(30))
#展示
plt.show()
#解决中文显示问题和负号现实问题
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False
fig,axes=plt.subplots(2,2,sharex=True,sharey=True) #共享x/y轴
#print(axes)
for i in range(2):
for j in range(2):
axes[i,j].hist(np.random.randn(500),bins=10,color='b',alpha=0.5)
plt.subplots_adjust(wspace=0,hspace=0)
plt.show()