2011-06-07 114 views
24

matplotlib的坐标轴格式化选项在绘制和有效标注密集的时间序列数据时趋于平缓。matplotlib:时间序列图中的周期数据下的标记周期标签

一个问题是刻度标签与刻度线相关,所以如果您将轴刻度设置为适当的频率,通常会有太多标签。这也意味着,如果您正在绘制数年的日常数据,那么在每年的自然位置上标记X轴没有好方法:以年份数据为中心(即在x 7月2日左右的位置)。

this example中描述的技巧 - 在您想要的位置设置主要刻度,然后使用不可见的次要刻度将标签放置在其他地方 - 工作,但它将您限制为一组可见的轴刻度(因为每个轴限制为一个一套主要和一套次要蜱)。您不能在每年年初开始时显示主要报价,并且在每个月开始时不会放弃将年份标签在主要(每年)报价之间进行适当集中的能力,正如您在发布时所发现的那样 - 质量剧情。

是否有解决方法,不涉及完全手动绘制所有内容?

+7

虽然我会同意matplotlib的刻度标签可以更灵活,但您所描述的标签类型只需要两三行代码......使用'annotate'手动操作非常简单。 – 2011-06-07 04:16:22

+0

取决于你的数据的性质,你可能想看看www.rrdtool.org ...它做了很好的标记X轴(我认为)。 – 2011-12-12 13:35:36

+0

过去几年里发生过什么事吗?我与pash有同样的问题,并没有找到任何令人满意的东西。你可能会认为在代码中包含这样的选项并不是一个这样的问题。所以如果有人有解决方案,我也会很高兴听到:) - 谢谢。 – 2014-09-29 10:05:31

回答

1

你看过scikits.timeseries中的tsplot功能吗?它最近一直没有维护,但它运行得很好。我将在相对不远的将来的某个时间将该代码移植到熊猫中。

+0

Wes,'tsplot'与matplotlib的'Subplot'子类相互作用,所以它在这方面提供了完全相同的特征(并且缺乏它)。感谢您在熊猫方面的出色工作,BTW。这是我经常使用的一个很棒的图书馆。 – pash 2011-12-21 05:21:38