【发布时间】:2015-11-14 22:51:38
【问题描述】:
这让我发疯了。我只想要一个散点图,其中 x 轴是时间,并且每 n 秒带有刻度线(比如 3)。我可以使用轴来渲染日期,但由于某种原因,x 限制对于我实际收集的数据(从传感器)来说是一种方式。
f = arr["f"].values
p = arr["p"].values
ts = arr["time"].values
d = [datetime.fromtimestamp(x/1e3) for x in ts]
t = md.date2num(d)
xfmt = md.DateFormatter('%H:%M:%S')
loc = md.SecondLocator(interval=3)
ax = fig.add_subplot(2,1,1)
ax.xaxis.set_major_formatter(xfmt)
ax.xaxis.set_major_locator(loc)
ax.scatter(t, f, s=p)
结果:
简单地将 xlim 设置为我的数据的最小值/最大值是行不通的。
plt.xlim(d[0],d[-1])
结果:
RuntimeError: RRuleLocator estimated to generate 42388816 ticks from 2013-11-
09 00:44:48.845835+00:00 to 2017-11-19 20:45:37.472159+00:00: exceeds
Locator.MAXTICKS * 2 (2000)
到底为什么它试图在 2013 和 2017 之间生成刻度?我传入并想要绘制的数据是实时捕获的,并且时间戳设置正确。
【问题讨论】:
标签: python datetime matplotlib