在 python matplotlib.dates 中绘制毫秒图

发布于 2024-10-30 18:42:17 字数 447 浏览 1 评论 0原文

我有使用 datetime.datetime.strptime 格式化的时间标记数据,其中包括毫秒。数据的跨度可以从几分钟到几个小时。当我使用 pyplot 进行绘图并放大时,最小刻度线似乎是 1 秒。看来 matplotlib 的 TickHelper RRuleLocator 只有一个 SecondLocator。有没有办法在放大时包含毫秒分辨率?

receivedTime = datetime.datetime.strptime(str(data[1]), "%H:%M:%S.%f")

fig=plt.figure()
ax=fig.add_axes([0.1,0.1,.8,.8])
fig.autofmt_xdate()

ax.plot(times, prices, color='blue', lw=1, drawstyle='steps-post', label = prices)
plt.show()

I have time tagged data formatted using datetime.datetime.strptime that includes milliseconds. The data can span from a few minutes to a few hours. When I plot using pyplot and zoom in, it seems the minimum tick mark is 1 second. It appears that matplotlib's TickHelper RRuleLocator only has a SecondLocator. Is there a way to include millisecond resolution when zoomed in?

receivedTime = datetime.datetime.strptime(str(data[1]), "%H:%M:%S.%f")

fig=plt.figure()
ax=fig.add_axes([0.1,0.1,.8,.8])
fig.autofmt_xdate()

ax.plot(times, prices, color='blue', lw=1, drawstyle='steps-post', label = prices)
plt.show()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不爱素颜 2024-11-06 18:42:17

Matplotlib 使用类似 Matlab 的数字(自 1970 年以来的秒数)来表示日期。如果有毫秒,则必须将日期转换为“数字”:

import matplotlib.dates as mdates
ntimes = mdates.num2epoch(times / 1000.0)

并绘制 ntimes 而不是 times

Matplotlib uses Matlab like numbers (seconds since 1970) for dates. If you have milliseconds, you must convert the dates to 'number':

import matplotlib.dates as mdates
ntimes = mdates.num2epoch(times / 1000.0)

and plot ntimes instead of times.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文