在pyplot中删除重叠的x轴标签

时间:2020-07-03 20:23:33

标签: python matplotlib time-series label

我是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()

您可以在下图中看到问题。任何帮助将不胜感激!

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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提示数据集中的数据

enter image description here