2014-09-02 2 views
0

J'essaie de tracer une série temporelle avec des étiquettes correspondant à l'heure GMT en bas et l'heure locale (GMT-7) en haut entre Julian Days 128 et 158. J'utilise twiny() pour créer l'axe x secondaire mais d'une manière ou d'une autre, les étiquettes ne sont pas placées correctement. Comment puis-je réparer cela?Déplacement des tiques sur l'axe des abscisses secondaires dans pyplot

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

Répondre

0

Modification de l'ordre des commandes dans le bloc « AX2 » en quelque sorte résolu le problème, même si je ne comprends pas comment.

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) 
Questions connexes