2 回答
TA贡献1868条经验 获得超4个赞
您可以使用subplot2grid。这真的很方便。
文档说
在网格中创建子图。网格由形状指定,在 loc 的位置,跨越每个方向的 rowspan 和 colspan 单元格。loc 的索引是从 0 开始的。
首先,您在(3,2)此处根据行数和列数定义大小。然后定义特定子图的起始(行、列)位置。然后分配该特定子图跨越的行/列数。行跨度和列跨度的关键字分别是rowspan和colspan。
import matplotlib.pyplot as plt
ax1 = plt.subplot2grid((3, 2), (0, 0), colspan=1)
ax2 = plt.subplot2grid((3, 2), (0, 1), colspan=1)
ax3 = plt.subplot2grid((3, 2), (1, 0), colspan=2)
ax4 = plt.subplot2grid((3, 2), (2, 0), colspan=2)
plt.tight_layout()
TA贡献1993条经验 获得超5个赞
您提供给 subplot 的整数实际上是 3 部分:
第一位:行数
第二位:列数
第三位:索引
因此,对于每次调用子图,我们指定应如何划分绘图区域(使用行和列),然后将绘图放入哪个区域(使用索引),请参见下图。
ax1 = plt.subplot(321) # 3 rows, 2 cols, index 1: col 1 on row 1ax2 = plt.subplot(322) # 3 rows, 2 cols, index 2: col 2 on row 1ax3 = plt.subplot(312) # 3 rows, 1 cols, index 2: col 1 on row 2ax4 = plt.subplot(313) # 3 rows, 1 cols, index 3: col 1 on row 3
从文档:
描述子图位置的 3 位整数或三个单独的整数。如果三个整数依次为 nrows、ncols 和 index,则子图将在具有 nrows 行和 ncols 列的网格上占据索引位置。索引从左上角的 1 开始,向右增加。
pos 是一个三位整数,其中第一位是行数,第二位是列数,第三位是子图的索引。即 fig.add_subplot(235) 与 fig.add_subplot(2, 3, 5) 相同。请注意,所有整数必须小于 10 才能使用此表单。
添加回答
举报