我们需要知道,在使用matplotlib进行画图的时候,需要先创建Figure,也就是进行plt.figure()操作,然后再使用subplot进行画布创建
不手动创建Figure对象
这里如果在创建画布前不进行figure创建,subplot会隐式地创建一个figure.若要获取这个figure对象只能使用plt.gcf(),然后若要获取当前的figsize,需要使用获取到的figure对象进行.get_size_inches(),若要进行修改,则需要使用.set_size_inches(),参数为要调整为的figsize.
同样,如果要进行facecolor的调整,也就是Figure对象的颜色获取,需要使用.get_facecolor()获取,修改需要使用.set_facecolor()
要进行dpi的调整,需要使用.get_dpi(),设置使用.set_dpi()
import matplotlib.pyplot as plt
# 创建一个包含两个子图的图形
ax3 = plt.subplot(221)
print(ax3.figure)
fig = plt.gcf()
print(fig.get_size_inches())
fig.set_size_inches(6,4)
print(fig.get_size_inches())
print(fig.get_dpi())
fig.set_dpi(300)
print(fig.get_dpi())
print(fig.get_facecolor())
fig.set_facecolor('red')
print(fig.get_facecolor())
# 显示图形
plt.show()
# Figure(640x480)
# [6.4 4.8]
# [6. 4.]
# 100.0
# 300
# (1.0, 1.0, 1.0, 1.0)
# (1.0, 0.0, 0.0, 1.0)
使用subplots()创建画布、画板
使用subplots()进行创建画布、画板,对于子画布的分配参数是需要设置nrows,ncols,两者分别为行数和列数,默认都为1,还可以直接在参数中配置figsize,facecolor,dpi等figure的参数,返回值为figure对象和多个子画布对象,可以进行解包.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2,2,figsize=(6,4),facecolor='w',dpi=300)
axes[0][0].set_title('title1')
axes[0][1].set_title('title1')
axes[1][0].set_title('title1')
axes[1][1].set_title('title1')
plt.show()
可以看到画布出现了重叠,这里可以通过plt.subplots_adjust()设置wspace和hspace也就是width space(宽度,横向的间距),height(高度,纵向的间距),这种方法同样适用于使用subplot()创建的画布
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2,2,figsize=(6,4),facecolor='w',dpi=300)
plt.subplots_adjust(hspace=0.4,wspace=0.4)
axes[0][0].set_title('title1')
axes[0][1].set_title('title1')
axes[1][0].set_title('title1')
axes[1][1].set_title('title1')
plt.show()