python-带日期的Matplotlib-更改每月数据的标签和报价
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-带日期的Matplotlib-更改每月数据的标签和报价,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1248字,纯文字阅读大概需要2分钟。
内容图文
我有一个这样的数据框:
data_ = list(range(106))
index_ = pd.period_range('3/1/2004', '12/1/2012', freq='M')
df2_ = pd.DataFrame(data = data_, index = index_, columns = ['data'])
我想绘制此数据框.目前,我正在使用:
df2_.plot()
现在,我想控制x轴上的标签(可能还有刻度).特别是,我喜欢在轴上有每月的滴答声,可能每隔一个月或每季度有一个标签.我也喜欢垂直网格线.
我开始看this example,但我已经无法构造timedelta.
解决方法:
关于构造timedelta,datetime.timdelta()没有指定月份的参数,因此坚持使用pd.date_range()可能很方便.但是,我发现pandas.tslib.Timestamp类型的对象不能与matplotlib刻度一起使用,因此您可以将它们转换为datetime.date对象,如下所示
index_ = [pd.to_datetime(date, format='%Y-%m-%d').date()
for date in pd.date_range('2004-03-01', '2012-12-01', freq="M")]
首先定义一个matplotlib axes对象,然后将其传递给DataFrame.plot(),即可添加网格线并自定义轴标签.
ax = plt.axes()
df2_.plot(ax=ax)
现在,您可以将垂直网格线添加到绘图中
ax.xaxis.grid(True)
并通过使用matplotlib.dates.MonthLocator并将间隔设置为3来指定每季度xticks标签
ax.xaxis.set_major_locator(dates.MonthLocator(interval=3))
最后,我发现the虫非常拥挤,因此我将它们格式化以使其更合适
ax.xaxis.set_major_formatter(dates.DateFormatter('%b %y'))
labels = ax.get_xticklabels()
plt.setp(labels, rotation=85, fontsize=8)
产生以下plot
内容总结
以上是互联网集市为您收集整理的python-带日期的Matplotlib-更改每月数据的标签和报价全部内容,希望文章能够帮你解决python-带日期的Matplotlib-更改每月数据的标签和报价所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。