J'ai un problème en essayant de faire tourner mes tiques de date dans matplotlib. Un petit exemple de programme est ci-dessous. Si j'essaye de faire pivoter les graduations à la fin, les graduations ne sont pas tournées. Si j'essaie de faire pivoter les graduations comme indiqué sous le commentaire «plante», alors la bibliothèque matplot plante.
Cela ne se produit que si les valeurs x sont des dates. Si je remplace la variable dates
par la variable t
dans l'appel à avail_plot
, l' xticks(rotation=70)
appel fonctionne très bien à l'intérieur 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()