微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Matplotlib datetime xticklabels:有些标签没有旋转或出现在get_xticklabels中

如何解决Matplotlib datetime xticklabels:有些标签没有旋转或出现在get_xticklabels中

我正在Matplotlib的Pandas系列中绘制一些数据。 Matplotlib很好地调整为仅在x轴上显示1月和7月,但问题是7月xticklabel似乎无法访问。

例如,如果我旋转xticklabel,则只有最后一个July标签会响应。另外,如果我要求使用ax.get_xticklabels()查看xticklabel,则7月标签只会显示最后一个标签

所以我想七月标签必须存储在对象中的其他位置。如何获得这些标签,并进行轮换等操作?

# Imports
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


# Generate random data
dates = pd.bdate_range('2017-01-01','2020-07-01')
np.random.seed(0)
data = np.random.normal(size=len(dates)).cumsum()
data = pd.Series(data,index=dates)


# Plot
fig,ax = plt.subplots(1,1)
data.plot(ax=ax)
plt.xticks(rotation=40)

# Get xticklabels
plt.draw()
print( [item.get_text() for item in ax.get_xticklabels()] )

打印语句的输出

['Jan\n2017','Jan\n2018','Jan\n2019','Jan\n2020','Jul']

Output plot with only some xticklabels rotated

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。