Mam problem z obracaniem moich znaczników daty w matplotlib. Mały przykładowy program znajduje się poniżej. Jeśli spróbuję obrócić kleszcze na końcu, kleszcze nie obracają się. Jeśli spróbuję obrócić znaczniki, jak pokazano pod komentarzem „awarie”, wtedy matplot lib ulega awarii.
Dzieje się tak tylko wtedy, gdy wartości x są datami. Jeśli zastąpię zmienną dates
zmienną t
w wywołaniu avail_plot
, xticks(rotation=70)
połączenie działa dobrze w środku avail_plot
.
Jakieś pomysły?
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()