在用matplotlib绘制图形时,我经常要绘制子图,此时我们就可以使用函数
plt.subplots()
fig,ax = plt.subplots()的意思建立一个fig对象和建立一个axis对象,当我绘制2*2的个子图时候我们需要
#建立一个fig对象和一个axis对象,figsize设置对象的大小
fig,ax = plt.subplots(2,2,figsize=(9,25))
#选定第2个子图
ax1 = plt.subplot(221)
ax1.scatter(x1,y1)
#选定第2个子图
ax1 = plt.subplot(222)
ax1.scatter(x2,y2)
#或者使用索引的方式绘制子图
ax[0].scatter(x1,y1)
ax[1].scatter(x1,y1)
以上就是 plt.subplots()的作用,我们举个栗子:
方法1import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
#设置2个子图
fig,ax = plt.subplots(1,2,figsize=(9,5))
xy1 = np.array([0.2,0.8])
xy2 = np.array([0.2,0.8])
ax1 = plt.subplot(121) #绘制子图1对象
ax2 = plt.subplot(122) #绘制子图2对象
#设定绘制边框的尺寸
rect1 = mpathes.Rectangle(xy2,0.2,0.1,fill=False,color='r')
rect2 = mpathes.Rectangle(xy2,0.2,0.1,fill=False,color='b')
ax1.add_patch(rect1) #对子图1进行绘制
ax2.add_patch(rect2) #对子图2进行绘制
ax1.set_title('test_1')
ax2.set_title('test_2')
ax1.grid()
ax2.grid()
plt.show()
方法2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
#设置2个子图
fig,ax = plt.subplots(1,2,figsize=(9,4))
xy = np.array([0.2,0.8])
#设定绘制边框的尺寸
rect1 = mpathes.Rectangle(xy,0.2,0.1,fill=False,color='r')
rect2 = mpathes.Rectangle(xy,0.2,0.1,fill=False,color='b')
ax[0].add_patch(rect1) #对子图1进行绘制
ax[1].add_patch(rect2) #对子图2进行绘制
ax[0].set_title('test_1')
ax[1].set_title('test_2')
plt.show()