使用matplotlib绘制小多图表 - 如何设置图形大小?

时间:2015-12-01 17:56:50

标签: python matplotlib

我用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个图表有数据是无关紧要的,这是我所担心的压扁:

enter image description here

如何拉伸matplotlib生成的图形,以便每个图表都是合理的高度?

我曾经假设可以简单地设置数字的总像素高度,但我对谷歌的影响并不大。

我不在乎matplotlib生成的交互式输出是否不是很有用,只要我能生成一个合理的最终.png文件。

1 个答案:

答案 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)

enter image description here

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)

enter image description here