首页 > 解决方案 > 我有 29 个图,但我希望将它们排列成更少的行,我该如何在 matplotlib 上做到这一点?

问题描述

我有一个 for 循环,在其中制作了 29 个图...如何使图并排排列(例如 4x7 加上一个带有 1 个图的附加行)而不是全部垂直?

for i in range(int(len(lsds_monthly)/24)):
    plt.plot(time_months[i*24: (i+1)*24],lsds_monthly[i*24: (i+1)*24])
    plt.xticks(np.arange(min(time_months[i*24: (i+1)*24]),max(time_months[i*24: (i+1)*24]),.15), rotation=35)
    plt.grid()
    plt.title('LSDS Monthly Data')
    plt.show()

现在的情节如何

标签: pythonnumpymatplotlibjupyter

解决方案


您需要使用ax而不是进行绘图plt

for i in range(int(len(lsds_monthly)/24)):

    # add a new subplot
    ax = plt.subplot(5, 6, i+1)

    # plot on the subplot
    ax.plot(time_months[i*24: (i+1)*24],lsds_monthly[i*24: (i+1)*24])

    # other formatting
    ax.set_xticks(np.arange(min(time_months[i*24: (i+1)*24]),max(time_months[i*24: (i+1)*24]),.15), rotation=35)
    ax.grid()
    ax.title('LSDS Monthly Data')

plt.show()

推荐阅读