Tengo un problema al intentar que mis marcas de fecha giren en matplotlib. Un pequeño programa de muestra está debajo. Si trato de rotar los tics al final, los tics no se rotan. Si trato de rotar los ticks como se muestra debajo del comentario 'crashes', entonces matplot lib falla.Marcadores de fecha y rotación en matplotlib
Esto solo ocurre si los valores-x son fechas. Si reemplazo la variable dates
con la variable t
en la llamada a avail_plot
, la llamada xticks(rotation=70)
funciona perfectamente dentro de avail_plot
.
¿Alguna idea?
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()
Para crear un gráfico con fechas en el eje x es una tarea tan común - es una pena que no haya más completa ejemplos por ahí. – alexw
Me pregunto si esto no es un duplicado de https://stackoverflow.com/questions/10998621/rotate-axis-text-in-python-matplotlib – ImportanceOfBeingErnest