删除x轴叠加层不需要的索引标签

时间:2019-05-01 12:03:34

标签: python pandas matplotlib

我正在使用以下代码绘制图形。从图像中可以看出,由于某种原因,X轴上不需要的索引标签会覆盖日期。如何将其删除?

enter image description here

  

使用python2.7,matplotlib == 2.2.4,pandas == 0.23.1

def _create_image(x_labels, y_labels, title):

        df = pd.DataFrame({'date': x_labels, 'count': y_labels})
        df['date'] = pd.to_datetime(df['date'])
        df.set_index('date', inplace=True, drop=True)
        fig, ax = plt.subplots(figsize=(13, 5), sharex='all')

        df.plot(kind='line', ax=ax, marker='o', markerfacecolor='green', markersize=5, legend=False)

        ax.xaxis.set_major_locator(mdates.DayLocator(interval=3))
        ax.xaxis.set_major_formatter(mdates.DateFormatter('%d %b'))

        plt.xlabel('Dates')
        plt.ylabel('Count')

        plt.title(title)
        plt.savefig('/tmp/tmp_pic.png')

熊猫DF输入:

date        count
2019-04-02  247640
2019-04-03  429405
2019-04-04  168808
2019-04-05  227930
2019-04-06   70628
2019-04-07  141943
2019-04-08  143102
2019-04-09  123590
2019-04-10  285473
2019-04-11  203974
2019-04-12   56283
2019-04-13   52168
2019-04-14   58632
2019-04-15  112912
2019-04-16   59196
2019-04-17   30239
2019-04-18  112585
2019-04-19   39416
2019-04-20   99569
2019-04-21   55780
2019-04-22   56596
2019-04-23   67868
2019-04-24   40587
2019-04-25   47498
2019-04-26   22111
2019-04-27   48653
2019-04-28   14990
2019-04-29   49540
2019-04-30   39691

2 个答案:

答案 0 :(得分:1)

在一般情况下,您不能将matplotlib.dates标记用于熊猫的日期时间图。但是您可以通过matplotlib.dates参数制作与x_compat=True兼容的熊猫图。

df.plot(..., x_compat=True)

答案 1 :(得分:0)

将轴格式化程序代码行放在df.plot之前。