(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()
参考: