如何在Altair折线图中修改时间间隔

时间:2020-05-22 04:02:14

标签: python altair

我有一个简单的折线图,看起来像这样:line graph of stock returns

我一直在尝试格式化x轴,以使时间间隔以年为单位,而不是现在的数月。但是,当我使用timeUnit属性时,它会生成如下所示的发育不良图:line graph of stock returns in years

代码:

alt.Chart(data).mark_line().encode(
    x = alt.X('Date', timeUnit = 'year'),
    y = alt.Y('Cumul_R', axis = alt.Axis(format='%', orient='right')),

    color = 'Stock')

我要生成的图看起来像第一个图,但是间隔以06-2010、06-2011等年份表示,而没有像第二张图那样压缩图。换句话说,我怎么只显示一些刻度标签,而不是全部?

我已经看到了我的问题的答案,但是它们使用tickCount或tickMinStep处理绝对值,而不是日期时间值。 https://altair-viz.github.io/user_guide/generated/core/altair.TimeInterval.html#altair.TimeInterval.init中显然有一个名为timeinterval的altair属性 也许可以解决问题,但是我不确定如何使用它。

感谢所有对此事的帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

您似乎应该将日期绘制为标称类型的值,而您可能应该将其绘制为 temporal

您应将x = alt.X('Date')更改为x = alt.X('Date:T'),以指定x通道是时间通道。当您执行此操作时,渲染器将使用可能更接近您所想的时间轴标签。

有关更多信息,请参见文档中的Encoding Data Types