(6)Matplotlib绘制多个子图
plt.subplot()
import matplotlib.pyplot as plt import numpy as np x1=np.linspace(0.0,5.0) #横坐标从0-5 x2=np.linspace(0.0,2.0) x3=np.linspace(0.0,10.0) y1=np.cos(2*np.pi*x1)*np.exp(-x1) y2=np.cos(2*np.pi*x2) y3=x3*x3+2 plt.subplot(2,2,1) #在两行两列第一个 plt.plot(x1,y1,'o-') plt.title('A tale of 2 subplot') plt.ylabel('Damped oscillation') plt.subplot(2,2,2) #在两行两列第二个 plt.plot(x2,y2,'.-') plt.title('time(s)') plt.ylabel('Undamped') plt.subplot(2,1,2) #在两行一列第二个 plt.plot(x3,y3,'^-') plt.title('x3data') plt.ylabel('y3data') plt.show()
面向对象
import matplotlib.pyplot as plt import numpy as np np.random.seed(1) data=np.random.randn(2,100) fig,axs=plt.subplots(2,2,figsize=(5,5)) axs[0,0].hist(data[0]) #axs[0,0]代表在坐标系左上 axs[1,0].scatter(data[0],data[1]) axs[0,1].plot(data[0],data[1]) axs[1,1].hist2d(data[0],data[1]) fig.subplots_adjust(hspace=0.8) #子图的垂直间隔 plt.show()
plt.figure()
你可以多次使用figure命令来产生多个图,其中,图片号按顺序增加。这里,要注意一个概念当前图和当前坐标。所有绘图绘图操作仅对当前图和当前坐标有效。
import matplotlib.pyplot as plt plt.figure(1) #第一张图 plt.subplot(211) #第一张图中的第一张子图 plt.plot([1,2,3]) plt.subplot(212) #第一张图中的第二张子图 plt.plot([4,5,6]) plt.figure(2) #第二张图 plt.plot([4,5,6]) #默认创建子图subplot(111) plt.figure(1) #切换到figure 1;子图subplot(212)仍旧是当前图 plt.subplot(211) #令子图subplot(211)成为figure1的当前图 plt.title('Easy as 1,2,3') #添加subplot 211 的标题 plt.show()
plt.text()添加文字说明
import matplotlib.pyplot as plt mu ,sigma=100,15 x = mu + sigma * np.random.randn(10000) #数据的直方图 n,bins,patches = plt.hist(x,50,normed=1,facecolor='g',alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') #添加标题 plt.title('Histogram of IQ') #添加文字 plt.text(60,.025,r'$mu=100,sigma=15$') plt.axis([40,160,0,0.03]) plt.grid(True) plt.show()
参考: