matplotlib的旋转轴注释文本:python

时间:2018-06-27 12:21:24

标签: python pandas matplotlib

我正在尝试注释我的所有数据点,但是注释时的文本彼此重叠,

fig = plt.figure(figsize=(70,2))
fig.autofmt_xdate()
plt.style.use('ggplot')
axess= plt.subplot(1,1,1)
axess.plot_date(idx2,stock2,'--')

axess.set_title("Doc_ID:7377")
axess.set_ylabel('1 - Online, 0 - Offline')

for i,txt in enumerate(date_match_df['service_name_'].tolist()):
    print(txt)
    axess.annotate(txt,(mdates.date2num(idx2[i]),stock2[i]),)
axess.yaxis.grid(True)
axess.xaxis.grid(True)

axess.xaxis.set_major_locator(dates.MonthLocator())
axess.xaxis.set_major_formatter(dates.DateFormatter('\n\n%b-%Y'))

axess.xaxis.set_minor_locator(dates.DayLocator())
axess.xaxis.set_minor_formatter(dates.DateFormatter('\n%d-%a'))
plt.tight_layout()

fig.savefig('happynewyear.svg')

图形如下所示: graph pic

如何旋转文本?

1 个答案:

答案 0 :(得分:1)

.annotate()方法的其他参数将传递给Text,因此您可以执行以下操作:

for i,txt in enumerate(date_match_df['service_name_'].tolist()):
    print(txt)
    axess.annotate(txt,(mdates.date2num(idx2[i]),stock2[i]), ha='left', rotation=60)

与您的代码相比,更改之处在于最后添加了ha='left', rotation=60