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

标签 python matplotlib timestamp

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

你知道我为什么得到 00-00-00 吗? enter image description here

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()

最佳答案

尝试放大图表,您会看到日期时间随着 x 轴刻度的变化而扩大。

plotting unix timestamps in matplotlib

在尝试绘制染色体上正选择的热图时,我遇到了类似的恼人问题。如果我缩小得太远,东西就会完全消失!

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

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()

关于python - 使用 Matplotlib 绘制时间戳(小时/分钟/秒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709823/

相关文章:

Python Matplotlib 函数动画

python - Pandas:根据复杂逻辑删除具有特定字符串的行和列

python解码/编码 hell (使用jinja2)

python-3.x - 在 Matplotlib 的插图中使用 twiny()

python - 如何在 seaborn 因子图中使用加权平均估计器(包括自举)?

python - 如何消除 matplotlib 烛台上的模糊?

python - 如何在Python中过滤出等效的值列表?

mysql - 使用 oracle 将 sysdate 与 iso 8601 进行比较

mysql - SQL 时间戳 - 计算 SLA

postgresql - 检查时间戳是否在 tsrange 内