Tôi đang gặp sự cố khi cố gắng để có được các dấu tick 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 các ve ở cuối, bọ ve không được xoay. Nếu tôi cố gắng để xoay ve như được hiển thị dưới bình luận 'tai nạn', sau đó matplot lib tai nạn.Đánh dấu ngày và xoay trong matplotlib
Điều này chỉ xảy ra nếu giá trị x là ngày. Nếu tôi thay thế biến số dates
bằng biến số t
trong cuộc gọi đến avail_plot
, cuộc gọi xticks(rotation=70)
hoạt động tốt bên trong avail_plot
.
Bất kỳ ý tưởng nào?
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()
Tạo một âm mưu với các ngày trên trục x là một nhiệm vụ chung như vậy - một sự xấu hổ không có đầy đủ hơn ví dụ ngoài kia. – alexw
Tôi tự hỏi nếu đây không phải là bản sao của https://stackoverflow.com/questions/10998621/rotate-axis-text-in-python-matplotlib – ImportanceOfBeingErnest