首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Matplotlib绘制时间戳(小时/分钟/秒)

使用Matplotlib绘制时间戳(小时/分钟/秒)
EN

Stack Overflow用户
提问于 2013-07-18 04:41:51
回答 2查看 50.8K关注 0票数 12

我想绘制一些时间戳(年-月-日,小时-分钟-秒格式)。我使用下面的代码,但是它没有显示任何小时-分钟-秒信息,它将它们显示为00-00-00。我仔细检查了我的日期数组,正如您从下面的代码片段中看到的,它们不是零。

你知道为什么我会得到00-00-00吗?

代码语言:javascript
复制
import matplotlib.pyplot as plt
import matplotlib.dates as md
import dateutil

dates = [dateutil.parser.parse(s) for s in datestrings]
# datestrings = ['2012-02-21 11:28:17.980000', '2012-02-21 12:15:32.453000', '2012-02-21 23:26:23.734000', '2012-02-26 17:42:15.804000']
plt.subplots_adjust(bottom=0.2)
plt.xticks( rotation= 80 )
ax=plt.gca()
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.plot(dates[0:10],plt_data[0:10], "o-")
plt.show()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-18 05:16:57

尝试放大您的图表,您将看到日期时间随着x轴比例的变化而扩展。

plotting unix timestamps in matplotlib

当我试图在染色体上绘制正选择的热图时,我也遇到了类似的恼人问题。如果我放大太远,所有的东西都会完全消失!

编辑:此代码完全按照您给出的日期绘制日期,但不会在日期之间添加刻度。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import matplotlib.dates as md
import dateutil

datestrings = ['2012-02-21 11:28:17.980000', '2012-02-21 12:15:32.453000', '2012-02-21 23:26:23.734000', '2012-02-26 17:42:15.804000']
dates = [dateutil.parser.parse(s) for s in datestrings]

plt_data = range(5,9)
plt.subplots_adjust(bottom=0.2)
plt.xticks( rotation=25 )

ax=plt.gca()
ax.set_xticks(dates)

xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.plot(dates,plt_data, "o-")
plt.show()
票数 10
EN

Stack Overflow用户

发布于 2017-11-17 05:35:48

我可以告诉你为什么它显示00:00:00。因为那是那一天的开始时间。例如,一个刻度在2012-02-22 00:00:00 (2012-02-22午夜12),另一个刻度在2012-02-23 00:00:00 (2012-02-23午夜12)。

这两个时间之间的时间戳的刻度不会显示。

我自己也在试图弄清楚如何在这两个时间段之间显示刻度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17709823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档