我有一大堆代码,用于创建财务数据图表。以下代码段是一个简化和缩短的版本,它创建了两个子图:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([1,2,3,4,5,6])
z = np.array([2,2,2,2,2,2])
f, ax = plt.subplots(2, sharex = True)
ax[0].plot(y)
ax[0].plot(z)
ax[1].plot(y)
plt.show()
最简单/更灵活的方法是使第一个子图(以及任何后续的一个,如果需要的话)与第一个子图的宽度相同(因为它们共用轴x)但是半高?
答案 0 :(得分:1)
使用gridspec
更精细地控制子图的大小。除了下面的示例(通过手动选择值显示2:1大小调整)之外,您还可以使用relative sizing。
import matplotlib.pyplot as plt
import numpy as np
y = np.array([1,2,3,4,5,6])
z = np.array([2,2,2,2,2,2])
ax1 = plt.subplot2grid((3,3),(0,0), colspan=3, rowspan=2)
ax2 = plt.subplot2grid((3,3),(2,0), colspan=3)
ax1.plot(y)
ax1.plot(z)
ax2.plot(y)
plt.show()