Python pyplot中次x轴上的刻度错位

Python pyplot中次x轴上的刻度错位,python,matplotlib,Python,Matplotlib,我正试图绘制一个时间序列,底部的标签对应于格林尼治时间,顶部的标签对应于朱利安时期128到158天之间的当地时间(GMT-7)。我正在使用twiny()创建次x轴,但不知怎的,次x轴上的标签没有正确放置。我怎样才能解决这个问题 import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter fig = plt.figure(figsize=(20,6)) ax1

我正试图绘制一个时间序列,底部的标签对应于格林尼治时间,顶部的标签对应于朱利安时期128到158天之间的当地时间(GMT-7)。我正在使用twiny()创建次x轴,但不知怎的,次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()

改变“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)