Tôi đang gặp vấn đề khi cố gắng để đánh dấu ngày của tôi được xoay trong matplotlib. Một chương trình mẫu nhỏ dưới đây. Nếu tôi cố gắng xoay bọ ve ở cuối, bọ ve sẽ không bị xoay. Nếu tôi cố gắng xoay các dấu tick như được hiển thị dưới nhận xét 'sự cố', thì matplot lib gặp sự cố.
Điều này chỉ xảy ra nếu giá trị x là ngày. Nếu tôi thay thế biến dates
bằng biến t
trong cuộc gọi đến avail_plot
, xticks(rotation=70)
cuộc gọi sẽ hoạt động tốt bên trong avail_plot
.
Có ý kiến gì không?
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()