【问题标题】:Matplotlib scatter plot with ticks at second intervals and tight xlimMatplotlib 散点图,带有第二个间隔的刻度和紧密的 xlim
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 2016-08-30
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2020-09-21
      • 2021-11-07
      相关资源
      最近更新 更多