2014-09-02 115 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)