python - pandas 日期时间轴上的刻度标签与刻度不对齐

标签 python pandas matplotlib datetime x-axis

我已经成功创建了生成一堆图表的代码。但是,x 轴标签稍微偏离 x 轴刻度线(向左)。

数据框

  stationId       date variable  value  prefix uom
0    site 1 2016-04-07       pH   6.90     NaN  pH
1    site 1 2016-07-11       pH   6.80     NaN  pH
2    site 1 2017-10-09       pH   6.80     NaN  pH
3    site 1 2017-10-09       pH   6.80     NaN  pH
4    site 1 2016-06-29       pH   6.79     NaN  pH

代码中没有任何内容可以让我明白为什么会发生这种情况。

    #plot
for line,group in linedf.groupby(['variable']):
    x = group['date']
    ax1 = group.plot(x='date', figsize=(8.2,4.5),linestyle='--',
                     linewidth=0.75,rot=0,marker='o',markersize=3)
    
    #set axis labels and chart title
    plt.title("chartTitle", fontsize=12)
    ax1.set_xlabel('Date', fontsize=10)
    ax1.set_ylabel('GWL (mAHD)',fontsize=10)

    #set text font
    rcParams['font.family'] = 'serif'
    rcParams['font.serif'] = ['Cambria']

    #set dates for x tick labels
    years = mdates.YearLocator()   # every year
    months = mdates.MonthLocator()  # every month
    yearsFmt = mdates.DateFormatter('%Y')


    lgd = plt.legend(bbox_to_anchor=(0.0 ,-0.13, 1.0, -0.03), 
                     loc=2,ncol = 6, mode="expand", borderaxespad=0.0,shadow=True)
            
    plt.show()

x-axis not lining up with ticks

完整数据框 here

下面选定的列,以防链接失效

stationId,date,variable,value
site 1,2016-07-04,pH,6.9
site 1,2016-11-07,pH,6.8
site 1,2017-09-10,pH,6.8
site 1,2016-06-29,pH,6.79
site 1,2016-03-14,pH,6.7
site 1,2016-07-25,pH,6.7
site 1,2016-04-20,pH,6.6
site 1,2016-08-08,pH,6.6
site 1,2018-06-08,pH,6.6
site 1,2018-08-20,pH,6.6
site 1,2018-11-26,pH,6.6
site 1,2018-10-12,pH,6.6
site 1,2016-05-16,pH,6.5
site 1,2016-06-14,pH,6.5
site 1,2016-08-24,pH,6.5
site 1,2016-05-09,pH,6.5
site 1,2016-09-20,pH,6.5
site 1,2016-11-14,pH,6.5
site 1,2016-12-14,pH,6.5
site 1,2017-05-01,pH,6.5
site 1,2017-01-18,pH,6.5
site 1,2017-12-04,pH,6.5
site 1,2017-06-19,pH,6.5
site 1,2017-03-07,pH,6.5
site 1,2017-08-14,pH,6.5
site 1,2017-09-15,pH,6.5
site 1,2017-09-25,pH,6.5
site 1,2017-11-12,pH,6.5
site 1,2018-04-16,pH,6.5
site 1,2018-05-14,pH,6.5
site 1,2018-05-28,pH,6.5
site 1,2018-06-13,pH,6.5
site 1,2018-09-07,pH,6.5
site 1,2018-05-09,pH,6.5
site 1,2018-09-17,pH,6.5
site 1,2018-03-10,pH,6.5
site 1,2018-10-31,pH,6.5
site 1,2018-12-11,pH,6.5
site 1,2016-12-01,pH,6.4
site 1,2016-05-31,pH,6.4
site 1,2016-04-10,pH,6.4
site 1,2016-10-17,pH,6.4
site 1,2017-01-31,pH,6.4
site 1,2017-02-16,pH,6.4
site 1,2017-02-03,pH,6.4
site 1,2017-03-15,pH,6.4
site 1,2017-03-29,pH,6.4
site 1,2017-08-05,pH,6.4
site 1,2017-05-22,pH,6.4
site 1,2017-07-19,pH,6.4
site 1,2017-02-08,pH,6.4
site 1,2017-08-29,pH,6.4
site 1,2017-11-13,pH,6.4
site 1,2018-01-22,pH,6.4
site 1,2018-05-02,pH,6.4
site 1,2018-02-19,pH,6.4
site 1,2018-03-19,pH,6.4
site 1,2018-06-25,pH,6.4
site 1,2016-02-18,pH,6.3
site 1,2016-02-03,pH,6.3
site 1,2016-05-05,pH,6.3
site 1,2016-03-02,pH,6.2
site 2,2016-06-29,pH,7.29
site 2,2017-02-08,pH,6.9
site 2,2017-09-15,pH,6.9
site 2,2016-05-31,pH,6.8
site 2,2017-02-16,pH,6.8
site 2,2017-09-25,pH,6.8
site 2,2017-09-10,pH,6.8
site 2,2016-06-14,pH,6.7
site 2,2016-08-24,pH,6.7
site 3,2018-09-07,pH,6.9
site 3,2018-08-20,pH,6.9
site 3,2018-07-23,pH,6.8
site 4,2016-06-29,pH,7.3
site 4,2016-07-25,pH,7.2
site 4,2016-11-07,pH,7.1
site 4,2017-09-15,pH,7.1
site 4,2016-06-14,pH,7.0
site 4,2017-08-14,pH,7.0
site 4,2017-09-25,pH,7.0
site 4,2018-06-04,pH,7.0
site 4,2018-09-07,pH,7.0
site 4,2018-10-31,pH,7.0
site 4,2018-10-12,pH,7.0
site 4,2016-05-16,pH,6.9
site 4,2017-05-01,pH,6.9
site 4,2017-12-04,pH,6.9
site 4,2017-05-22,pH,6.9
site 4,2017-06-19,pH,6.9
site 4,2017-03-07,pH,6.9
site 4,2017-02-08,pH,6.9
site 4,2017-08-29,pH,6.9
site 4,2017-11-12,pH,6.9
site 4,2018-02-01,pH,6.9
site 4,2018-04-30,pH,6.9
site 4,2018-05-28,pH,6.9
site 4,2018-06-13,pH,6.9
site 4,2018-06-08,pH,6.9
site 4,2018-03-10,pH,6.9
site 4,2018-12-11,pH,6.9
site 4,2018-11-26,pH,6.9
site 4,2016-04-20,pH,6.8
site 4,2016-08-08,pH,6.8
site 4,2016-08-24,pH,6.8
site 4,2016-10-17,pH,6.8
site 4,2016-04-11,pH,6.8
site 4,2016-11-14,pH,6.8
site 4,2017-01-31,pH,6.8
site 4,2017-02-16,pH,6.8
site 4,2017-02-03,pH,6.8
site 4,2017-03-29,pH,6.8
site 4,2017-08-05,pH,6.8
site 4,2017-05-06,pH,6.8
site 4,2017-07-19,pH,6.8
site 4,2017-09-10,pH,6.8
site 4,2017-10-31,pH,6.8
site 4,2017-11-13,pH,6.8
site 4,2017-11-27,pH,6.8
site 4,2018-01-22,pH,6.8
site 4,2018-02-19,pH,6.8
site 4,2018-05-03,pH,6.8
site 4,2018-04-16,pH,6.8
site 4,2018-05-14,pH,6.8
site 4,2018-06-25,pH,6.8
site 4,2018-07-23,pH,6.8
site 4,2018-08-20,pH,6.8
site 4,2018-09-17,pH,6.8
site 4,2018-10-15,pH,6.8
site 4,2016-12-01,pH,6.7
site 4,2016-02-18,pH,6.7
site 4,2016-02-03,pH,6.7
site 4,2016-03-14,pH,6.7
site 4,2016-07-04,pH,6.7
site 4,2016-05-31,pH,6.7
site 4,2016-05-09,pH,6.7
site 4,2016-09-20,pH,6.7
site 4,2016-04-10,pH,6.7
site 4,2016-12-14,pH,6.7
site 4,2017-01-18,pH,6.7
site 4,2018-05-02,pH,6.7
site 4,2018-03-19,pH,6.7
site 4,2018-05-09,pH,6.7
site 4,2016-03-02,pH,6.6
site 4,2016-05-05,pH,6.5
site 5,2016-02-03,pH,7.0
site 5,2017-01-31,pH,7.0
site 5,2017-02-16,pH,6.9
site 6,2016-06-29,pH,7.56
site 6,2016-08-08,pH,7.4
site 6,2018-02-01,pH,7.2
site 6,2018-06-08,pH,7.2
site 6,2018-03-10,pH,7.2
site 6,2018-10-15,pH,7.2
site 6,2016-05-09,pH,7.1
site 6,2016-04-11,pH,7.1
site 6,2017-12-04,pH,7.1
site 6,2017-03-07,pH,7.1
site 6,2017-02-08,pH,7.1
site 6,2017-09-15,pH,7.1
site 6,2017-11-12,pH,7.1
site 6,2018-05-28,pH,7.1
site 6,2018-09-07,pH,7.1
site 6,2018-07-23,pH,7.1
site 6,2016-04-20,pH,7.0
site 6,2017-05-06,pH,7.0
site 6,2017-06-19,pH,7.0
site 6,2017-07-19,pH,7.0
site 6,2017-08-14,pH,7.0
site 6,2017-08-29,pH,7.0
site 6,2017-09-25,pH,7.0
site 6,2017-10-31,pH,7.0
site 6,2017-11-13,pH,7.0
site 6,2017-11-27,pH,7.0
site 6,2018-01-22,pH,7.0
site 6,2018-02-19,pH,7.0
site 6,2018-06-04,pH,7.0
site 6,2018-10-31,pH,7.0
site 6,2018-11-26,pH,7.0
site 6,2018-10-12,pH,7.0
site 6,2017-05-22,pH,6.9
site 6,2017-09-10,pH,6.9
site 6,2018-05-02,pH,6.9
site 6,2018-05-03,pH,6.9
site 6,2018-03-19,pH,6.9
site 6,2018-04-16,pH,6.9
site 6,2018-04-30,pH,6.9
site 6,2018-05-14,pH,6.9
site 6,2018-06-13,pH,6.9
site 6,2018-06-25,pH,6.9
site 6,2018-08-20,pH,6.9
site 6,2018-05-09,pH,6.9
site 6,2018-09-17,pH,6.9
site 7,2016-06-29,pH,7.94
site 7,2016-04-20,pH,7.8
site 7,2016-05-16,pH,7.8
site 7,2016-11-07,pH,7.8
site 7,2016-05-09,pH,7.7
site 7,2016-12-01,pH,7.6
site 7,2016-03-02,pH,7.6
site 7,2016-05-05,pH,7.6
site 7,2016-07-25,pH,7.6
site 7,2016-08-24,pH,7.6
site 7,2016-04-10,pH,7.6
site 7,2016-10-17,pH,7.6
site 7,2017-02-03,pH,7.6
site 7,2017-02-16,pH,7.5
site 7,2017-03-15,pH,7.5
site 7,2018-08-20,pH,7.5
site 7,2016-02-18,pH,7.4
site 7,2016-07-04,pH,7.4
site 7,2016-05-31,pH,7.4
site 7,2016-06-14,pH,7.4
site 7,2016-09-20,pH,7.4
site 7,2016-04-11,pH,7.4
site 7,2017-01-18,pH,7.4
site 7,2017-01-31,pH,7.4
site 7,2017-11-12,pH,7.4
site 7,2018-03-19,pH,7.4
site 7,2018-05-28,pH,7.4
site 7,2018-06-25,pH,7.4
site 7,2018-06-08,pH,7.4
site 7,2018-05-09,pH,7.4
site 7,2018-12-11,pH,7.4
site 7,2018-11-26,pH,7.4
site 7,2018-10-12,pH,7.4
site 7,2016-08-08,pH,7.3
site 7,2016-12-14,pH,7.3
site 7,2017-05-01,pH,7.3
site 7,2017-02-08,pH,7.3
site 7,2017-09-15,pH,7.3
site 7,2017-09-25,pH,7.3
site 7,2017-11-27,pH,7.3
site 7,2018-06-13,pH,7.3
site 7,2018-09-07,pH,7.3
site 7,2018-10-15,pH,7.3
site 7,2018-10-31,pH,7.3
site 7,2016-02-03,pH,7.2
site 7,2016-11-14,pH,7.2
site 7,2017-03-07,pH,7.2
site 7,2017-08-14,pH,7.2
site 7,2017-08-29,pH,7.2
site 7,2017-10-31,pH,7.2
site 7,2017-11-13,pH,7.2
site 7,2018-02-01,pH,7.2
site 7,2018-02-19,pH,7.2
site 7,2018-07-23,pH,7.2
site 7,2018-09-17,pH,7.2
site 7,2018-03-10,pH,7.2
site 7,2017-12-04,pH,7.1
site 7,2018-05-03,pH,7.1
site 7,2017-05-22,pH,7.0
site 7,2017-05-06,pH,7.0
site 7,2017-08-05,pH,6.9
site 7,2017-06-19,pH,6.9
site 7,2016-03-14,pH,6.7
site 7,2017-09-10,pH,6.7
site 8,2016-11-07,pH,7.6
site 8,2018-05-28,pH,7.2
site 8,2016-03-02,pH,7.1
site 8,2017-05-01,pH,7.1
site 8,2017-08-05,pH,7.1
site 8,2016-04-20,pH,7.0
site 8,2017-01-18,pH,7.0
site 8,2017-01-31,pH,7.0
site 8,2017-02-03,pH,7.0
site 8,2017-09-10,pH,7.0
site 8,2018-06-04,pH,7.0
site 8,2018-06-13,pH,7.0
site 8,2018-09-07,pH,7.0
site 8,2018-12-11,pH,7.0
site 8,2016-05-16,pH,6.9
site 8,2018-02-19,pH,6.9
site 8,2018-03-10,pH,6.9
site 8,2016-12-01,pH,6.8
site 8,2016-02-18,pH,6.8
site 8,2016-10-17,pH,6.8
site 8,2017-06-19,pH,6.8

最佳答案

在没有看到您正在使用的数据框(或至少是其中的一部分)的情况下,我必须进行一些推测,但使用

手动调整刻度标签的对齐方式就足够了
for tick in ax1.xaxis.get_major_ticks():
    tick.label1.set_horizontalalignment('center')

如果没有数据框,我无法测试以确保这在您的情况下有效,但从问题中的图中看来,x-tick 标签的对齐方式已设置为'right'并将它们设置为'center'将按照您想要的方式对齐它们。

    取自centered ticklabels matplotlib 文档中的示例。

关于python - pandas 日期时间轴上的刻度标签与刻度不对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54759434/

相关文章:

python - 将 pandas 数据框转换为具有新键名的字典

Python,matplotlib : how to set tick label values to their logarithmic values

python - Python 3.x 中的绘图

python - MediaStorage 看起来不像模块路径。 Django 错误

作为 systemd 服务运行时,Python 脚本不会写入文件

python - Pandas Dataframe 合并其中 1 列匹配,但另一列的值不存在

python - 为什么cherry匹配而不匹配?

python - matplotlib FuncAnimation : when to stop?

python - 如何使用 python3.4 通过 'https' 登录页面登录?

python - 是否可以在类范围之外创建属性?