【问题标题】:How do I get nice tick labels for an irregularly sampled time series?如何为不规则采样的时间序列获得漂亮的刻度标签?
【发布时间】:2012-11-01 02:06:17
【问题描述】:

我有一个不定期采样的 Pandas 系列(大约 5 秒,但由于延迟,总是延迟几毫秒)。

我可以将这些数据绘制成具有漂亮的 x 轴刻度标签吗?到目前为止,我只得到这个:

>>> print(bare_data.index)
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-11-08 12:00:05.130309, ..., 2012-11-09 11:38:18.997584]
Length: 16332, Freq: None, Timezone: None
>>> bare_data.plot()

在查阅 Pandas 文档后,我发现可以通过重新采样和插值数据使其更漂亮:

>>> bare_data.resample('5s').interpolate().plot()

但这会引入潜在的错误,但这取决于我的原始采样时间,所以我想知道是否有一种无损的方法来获得漂亮的刻度标签,因为即使在第一种情况下 index 也是由时间戳组成的.

【问题讨论】:

    标签: python matplotlib pandas


    【解决方案1】:

    对于常规频率,pandas 在绘制之前将基础索引转换为 PeriodIndex,并为 PeriodIndex 使用一组不同的刻度格式化程序和定位器。

    作为目前的解决方法,您可以使用rot 旋转刻度,使它们不会重叠。它不会像第二个情节那么漂亮,但至少可以阅读。

    我在 github 上提出了一个问题 (https://github.com/pydata/pandas/issues/2235)。

    【讨论】:

    • 我明白了。感谢您打开问题。您能否说明如何使用rot?我尝试做类似bare_data.plot(rot=60) 的事情,但它并没有改变任何东西。我在参数上找到的only docs就不多说了。
    • 好的,rot 选项现在开始工作了。我认为这是由于我使用了 SciPySuperpack 捆绑包附带的旧 0.9 开发版本。当我执行bare_data.plot(rot=60)bare_data.plot(rot=90) 时,刻度是可读的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 2021-05-25
    • 2023-01-20
    • 2013-03-03
    • 1970-01-01
    • 2019-10-10
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多