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 (将#修改为@)