我用matplotlib绘制小倍数。这是我的代码:
import matplotlib.pyplot as plt
f, axarr = plt.subplots(4, 4)
for name in ccgs:
x = np.array([k for k in ccgs[name]['dates']])
y = np.array([v for v in ccgs[name]['values']])
axarr[i / 4, i % 4].plot(x, y)
plt.show()
当输出为4x4网格时,这种方法非常出色,但是当我开始添加更多的子图时,这非常可怕。
看起来像这样 - 事实上只有前16个图表有数据是无关紧要的,这是我所担心的压扁:
如何拉伸matplotlib生成的图形,以便每个图表都是合理的高度?
我曾经假设可以简单地设置数字的总像素高度,但我对谷歌的影响并不大。
我不在乎matplotlib生成的交互式输出是否不是很有用,只要我能生成一个合理的最终.png
文件。
答案 0 :(得分:2)
fig, ax_lst = plt.subplots(15, 10, figsize=(15, 10))
for ax in ax_lst.ravel():
ax.xaxis.get_major_locator().set_params(nbins=3)
ax.yaxis.get_major_locator().set_params(nbins=2)
fig.tight_layout(pad=0, h_pad=.1, w_pad=.1)
或
fig, ax_lst = plt.subplots(15, 10, figsize=(15, 10), sharex='col', sharey='row')
for ax in ax_lst.ravel():
ax.xaxis.get_major_locator().set_params(nbins=3)
ax.yaxis.get_major_locator().set_params(nbins=2)
fig.tight_layout(pad=0, h_pad=.1, w_pad=.1)