plt.subplot(m, n, i)是画出m乘n个子图,每行都是n个图。
请问怎么设置才能使得每行图不一样多?
比如第一行4个图,第二行两个一样长的长图,第三行又是4个图。
1个回答
用GridSpec可以实现这个功能,下面就是你要的这种情况
import matplotlib.pyplot as plt
import numpy as np
# 初始化x和y
x = np.linspace(-5, 5, 100)
y = np.sin(x)
# 生成格子,2行4列
grid = plt.GridSpec(2, 4, wspace=0.4, hspace=0.3)
# 第一行的图,每图占一列
plt.subplot(grid[0, 0])
plt.plot(x, y)
plt.subplot(grid[0, 1])
plt.plot(x, y)
plt.subplot(grid[0, 2])
plt.plot(x, y)
plt.subplot(grid[0, 3])
plt.plot(x, y)
# 第二行的图,每图占两列
plt.subplot(grid[1, :2])
plt.plot(x, y)
plt.subplot(grid[1, 2:])
plt.plot(x, y)
plt.show()
效果如下:
谢谢大神!
-
robin_he
2019-07-29 13:23