Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-x轴标签未与记号对齐_Python_Pandas_Matplotlib - Fatal编程技术网

Python-x轴标签未与记号对齐

Python-x轴标签未与记号对齐,python,pandas,matplotlib,Python,Pandas,Matplotlib,我已经成功地创建了生成一系列图表的代码。但是,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

我已经成功地创建了生成一系列图表的代码。但是,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()

在看不到您正在使用的数据帧(或至少是数据帧的一部分)的情况下,我不得不进行一些推测,但使用

for tick in ax1.xaxis.get_major_ticks():
    tick.label1.set_horizontalalignment('center')
如果没有数据框,我无法测试以确保这在您的情况下有效,但从问题中的绘图来看,x-tick标签的对齐方式似乎已设置为
“right”
,将其设置为
“center”
将按照您的意愿对齐


    取自matplotlib文档中的示例。

谢谢。这就解决了问题。我不确定为什么会发生这种情况,尽管由于您的代码不完整(),我没有将x-tick标签设置为right(),因此无法找到。问题@ImportanceOfBeingErnest中添加了一小部分数据帧。这似乎只有在使用group.plot()时才会发生。是的,这是因为熊猫稍微操纵了滴答声参数。您可以使用
plt.setp(ax1.getxticklabels(),ha=“center”)
再次将它们居中。