2014-09-02 114 views
0

我想绘制一个时间序列,标签对应于格林威治标准时间128和158之间的顶部和当地时间(格林威治标准时间-7)顶部的GMT时间。我正在使用twiny()创建辅助x轴,但不知何故其上的标签未正确放置。我怎样才能解决这个问题?pyplot中第二个x轴上的刻度线错位

import matplotlib.pyplot as plt 
from matplotlib.ticker import MultipleLocator, FormatStrFormatter 

fig = plt.figure(figsize=(20,6)) 
ax1 = fig.add_subplot(111) 
ax2 = ax1.twiny() 

dayTickLocations=range(128*24,158*24,24) 
dayTickLabels=range(128,158) 

dayTickLocations_loc=range((128*24)-7,(158*24)-7,24) 
dayTickLabels_loc=range(128,158) 

ax1.set_xlim(128*24,158*24) 
ax1.set_xlabel('Julian Days (GMT Time)') 
ax1.set_xticks(dayTickLocations) 
ax1.set_xticklabels(dayTickLabels) 
ax1.grid(True) 

ax2.grid(True) 
ax2.set_xlabel('Julian Days (Local Time)') 
ax2.set_xlim(128*24,158*24) 
ax2.set_xticks(dayTickLocations_loc) 
ax2.set_xticklabels(dayTickLabels_loc) 

plt.show() 

enter image description here

回答

0

在“AX2”块更改命令的顺序在某种程度上解决了这个问题,但我不明白怎么。

ax2.set_xlabel('Julian Days (Local Time)') 
ax2.set_xticks(dayTickLocations_loc) 
ax2.set_xticklabels(dayTickLabels_loc) 
ax2.grid(True) 
ax2.set_xlim(128*24,158*24)