pandas timeseries plot xticks二级粒度

时间:2013-06-05 13:54:26

标签: matplotlib pandas

我有一些大熊猫数据帧,时间序列数据大约持续20分钟。当我在它们上面调用绘图时,一些绘图显示x-ticks为hh:mm:ss,而其中一些显示为hh:mm。

比较输出图表时会造成混淆。如何强制hh:mm的粒度与其他粒度一样?

根据第一个评论者的请求,这里是一个产生hh:mm:ss格式图的数据框

  In [68]:dfd
  Out[68]:
  <class 'pandas.core.frame.DataFrame'>
  DatetimeIndex: 1193 entries, 2013-05-30 00:00:00 to 2013-05-30 00:19:59
  Data columns:
  disk_util    1193  non-null values
  dtypes: float64(1)

  In [69]:
  dfd.plot()  # this gives hh:mm:ss plot

但是这个给出了hh:mm格式的情节:

    In [63]: dfn
    Out[63]:
    <class 'pandas.core.frame.DataFrame'>
    DatetimeIndex: 1197 entries, 2013-05-30 00:00:00 to 2013-05-30 00:19:56
    Data columns:
    net_util    1197  non-null values
    dtypes: float64(1)

    In [64]: dfn.plot()

1 个答案:

答案 0 :(得分:0)

当我绘制数据框的子范围时,它给出了hh:mm格式的x刻度,我看到它给出了hh:mm:ss格式化的x-ticks。这表明当超过一定的大小时,大熊猫正在优化滴答的显示。

我上面也注意到,上面的disk_util数据帧有1193个样本,但时间跨度为2013-05-30 00:00:00到2013-05-30 00:19:59,这意味着有一些时间戳有时间戳没有读数。这种不完美可能导致大熊猫没有将显示器优化为hh:mm格式。

而net_util 1197非空值的时间跨度为2013-05-30 00:00:00至2013-05-30 00:19:56,这意味着没有丢失样本,并且pandas将显示优化为hh:mm。

当我人工删除数据框中的样本(df = df.drop(20))时,它会引入一个缺失的样本,图形以hh:mm:ss格式显示。所以我的问题现在已经解决了。