【问题标题】:Removing overlapping x-axis labels in pyplot删除pyplot中重叠的x轴标签
【发布时间】:2020-07-03 20:23:33
【问题描述】:

我是 python 新手,正在尝试绘制一些时间序列数据。我正在使用 pyplot 创建 3 个堆叠折线图,它们具有相同的 x 轴(日期),但 y 轴的比例不同。但是,每个 y 轴以及底部图表的 x 轴都有重叠的标签。有从 0 到 1 生成的标签,以及来自我的数据集的轴标签。如何关闭 y 轴和底部 x 轴上自动生成的 0 到 1 标签?

fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))

ax = fig.add_subplot(3,1,1)
plt.plot(df1['date'], df1['value'])

ax2 = fig.add_subplot(3,1,2)
plt.plot(df2['date'], df2['value'])

ax3 = fig.add_subplot(3,1,3)
plt.plot(df3['date'], df3['value'])
plt.show()

您可以在下图中看到问题。非常感谢任何帮助!

【问题讨论】:

    标签: python matplotlib time-series label


    【解决方案1】:

    您已经在初始分配中创建了包含所有轴的子图

    fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))
    

    因此以下赋值

    ax = fig.add_subplot(3,1,1)
    ax2 = fig.add_subplot(3,1,2)
    ax3 = fig.add_subplot(3,1,3)
    

    不仅没有必要,而且它们似乎与已经创建的子图重叠(如果将其更改为 add_subplot(2,1,1) 您会注意到它只是开始再次划分图形并将轴相互重叠)。

    您想要做的是访问在 plt.subplots() 调用中创建的轴:

    fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))
    
    ax[0].plot(df1['date'], df1['value'])
    
    ax[1].plot(df2['date'], df2['value'])
    
    ax[2].plot(df3['date'], df3['value'])
    plt.show()
    

    模拟输出:

    来自 seaborn Tips 数据集的数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多