matplotlib:在时间序列图中居中显示周期标签
matplotlib在处理密集的时间序列数据时,轴的格式化选项往往显得不够灵活。
一个问题是,刻度标签是和刻度线绑定在一起的,所以如果你设置了合适频率的刻度线,通常会出现标签太多的情况。比如说,如果你要绘制几年的每日数据,就很难在x轴上把每年的标签放在它们自然的位置上:也就是每年的数据正下方(比如说,7月2日的x轴位置正下方)。
在这个例子中提到的技巧是:在你想要的位置设置主要刻度,然后用看不见的次要刻度来放置标签,这个方法是可行的,但它限制了你只能有一组可见的轴刻度(因为每个轴只能有一组主要刻度和一组次要刻度)。你不能在每年的开始显示主要刻度,同时在每个月的开始显示次要刻度,而不失去把年份标签适当地放在主要(每年)刻度之间的能力,这样的效果在出版质量的图表中是很常见的。
有没有什么方法可以避免完全手动绘制所有内容呢?
1 个回答
1
你有没有看过 scikits.timeseries 里的 tsplot 功能?这个功能最近没有得到太多维护,但其实运行得还不错。我打算在不久的将来把这段代码移植到 pandas 里。