Matplotlib散点图以第二个间隔的刻度和紧密xlim

时间:2015-11-14 22:51:38

标签: python datetime matplotlib

这让我发疯了。我只想要一个散点图,其中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)                                                  

结果:

caption

只需将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年之间产生蜱?我已经进入并想要绘制的数据是实时捕获的,时间戳设置正确。

1 个答案:

答案 0 :(得分:0)

好的,奇怪的是,添加了一个打印声明,保存,一切都突然起作用。我猜一些奇怪的缓存问题正在进行中。 xlim现在似乎得到了适当的尊重。叹息..