如何在Matplotlib中格式化多个绘图的X轴

时间:2019-05-31 16:26:32

标签: python matplotlib

我目前正在生成三个不同的图形,但是在尝试为所有三个图形设置x轴格式时遇到麻烦。这就是我目前所拥有的。

    fig, ax = plt.subplots()

    plt.figure(1)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates1, y1)
    plt.show()

    plt.figure(2)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates2, y2)
    plt.show()

    plt.figure(3)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates3, y3)
    plt.show()

第一个图形已按要求设置格式,但是第二个和第三个图形似乎无法检测到指定的x轴格式。正确的做法是什么,有没有办法一次设置所有三个图的格式?

1 个答案:

答案 0 :(得分:0)

您可以使用plt.close()放弃绘图实例。或为每个变量分配自己的变量。

    plt.figure(1)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates1, y1)
    plt.show()
    plt.close()


    plt.figure(2)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates2, y2)
    plt.show()
    plt.close()

    plt.figure(3)
    formatter = DateFormatter('%m/%d/%y')
    ax.xaxis.set_major_formatter(formatter)
    ax.xaxis.set_tick_params(rotation=30)
    plt.plot_date(dates3, y3)
    plt.show()
    plt.close()