栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用matplotlib和python绘制datetime.timedelta

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用matplotlib和python绘制datetime.timedelta

尽管matplotlib原则上可以处理日期时间对象,但条形图无法直接解释它们。因此,您可以在timedelta上添加任意日期,然后使用转换为数字

matplotlib.dates.date2num()
。然后使用
DateFormatter
启用漂亮的ticklabels。

import numpy as npimport datetimeimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdays = [2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16]time_list = [datetime.timedelta(0, 23820), datetime.timedelta(0, 27480),   datetime.timedelta(0, 28500), datetime.timedelta(0, 24180),   datetime.timedelta(0, 27540), datetime.timedelta(0, 28920),   datetime.timedelta(0, 28800), datetime.timedelta(0, 29100),   datetime.timedelta(0, 29100), datetime.timedelta(0, 24480),   datetime.timedelta(0, 27000)]# specify a date to use for the timeszero = datetime.datetime(2018,1,1)time = [zero + t for t in time_list]# convert datetimes to numberszero = mdates.date2num(zero)time = [t-zero for t in mdates.date2num(time)]f = plt.figure()ax = f.add_subplot(1,1,1)ax.bar(days, time, bottom=zero)ax.yaxis_date()ax.yaxis.set_major_formatter(mdates.DateFormatter("%H:%M"))# add 10% margin on top (since ax.margins seems to not work here)ylim = ax.get_ylim()ax.set_ylim(None, ylim[1]+0.1*np.diff(ylim))plt.show()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号