Date de tiques et de la rotation dans matplotlib

Je rencontre un problème en essayant d'obtenir ma date tiques tourné dans matplotlib. Un petit exemple de programme est ci-dessous. Si j'essaie de faire pivoter les tiques à la fin, les tiques ne pas obtenir de la rotation. Si j'essaie de faire pivoter les tiques, comme indiqué dans le commentaire "se bloque", puis matplot lib se bloque.

Cela se produit uniquement si les valeurs de x sont des dates. Si je remplace la variable dates avec la variable t dans l'appel à avail_plot, le xticks(rotation=70) appel fonctionne très bien à l'intérieur de avail_plot.

Des idées?

import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

def avail_plot(ax, x, y, label, lcolor):
    ax.plot(x,y,'b')
    ax.set_ylabel(label, rotation='horizontal', color=lcolor)
    ax.get_yaxis().set_ticks([])

    #crashes
    #plt.xticks(rotation=70)

    ax2 = ax.twinx()
    ax2.plot(x, [1 for a in y], 'b')
    ax2.get_yaxis().set_ticks([])
    ax2.set_ylabel('testing')

f, axs = plt.subplots(2, sharex=True, sharey=True)
t = np.arange(0.01, 5, 1)
s1 = np.exp(t)
start = dt.datetime.now()
dates=[]
for val in t:
    next_val = start + dt.timedelta(0,val)
    dates.append(next_val)
    start = next_val

avail_plot(axs[0], dates, s1, 'testing', 'green')
avail_plot(axs[1], dates, s1, 'testing2', 'red')
plt.subplots_adjust(hspace=0, bottom=0.3)
plt.yticks([0.5,],("",""))
#doesn't crash, but does not rotate the xticks
#plt.xticks(rotation=70)
plt.show()
  • La création d'une parcelle avec des dates sur l'axe des x est une tâche commune - une honte, il n'y a pas plus complet exemples.
  • Je me demande si ce n'est pas un doublon de stackoverflow.com/questions/10998621/...
InformationsquelleAutor Neal | 2012-06-29