如果不指定figure()的轴,figure(1)命令默认会被建立,同样的如果你不指定subplot(numrows, numcols, fignum)的轴,subplot(111)也会自动建立。
plt.tight_layout()表示紧凑显示图像, plt.show()表示显示图像。
创建子图的几种方式:
- 先创建fig,然后add_subplot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 2], [3, 4])
fig.show()
- plt.subplots()
fig, ax = plt.subplots()
plt.plot([1, 2], [3, 4])
plt.show()
- ax画图
# 建立子图
fig, ax = plt.subplots(2, 1) # 2*1
# 第一个图为
ax[0].plot([1, 2], [3, 4])
# 第二个图为
ax[1].plot([1, 2], [3, 4])
plt.show()
- subplot2grid()
适合非等分画布形式的图形展示。
plt.figure()
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) # stands for axes
ax1.plot([1, 2], [1, 2])
ax1.set_title('ax1_title')
plt.show()
- gridspec
使用plt.subplot来作图, gs[0, :]表示这个图占第0行和所有列, gs[1, :2]表示这个图占第1行和第2列前的所有列, gs[1:, 2]表示这个图占第1行后的所有行和第2列, gs[-1, 0]表示这个图占倒数第1行和第0列, gs[-1, -2]表示这个图占倒数第1行和倒数第2列.
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
plt.figure()
gs = gridspec.GridSpec(3, 3)
ax6 = plt.subplot(gs[0, :])
ax6.plot([0, 1], [1, 2])
plt.show()
- subplot间距调整
subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。