我有一个简单的线图,看起来像这样。股票回报率的直线图
我一直在尝试格式化x轴,使时间间隔以年为单位,而不是现在的月。但是当我使用timeUnit属性时,它产生了一个像这样的迟钝的图形。以年为单位的股票回报线图
代码。
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来处理绝对值,而不是日期时间值。显然,在我的问题中,有一个叫做timeinterval的altair属性。https:/altair-viz.github.iouser_guidegeneratedcorealtair.TimeInterval.html#altair.TimeInterval.initiate.html#altair.TimeInterval.html那可能会解决这个问题,但我不知道怎么用。
感谢大家对此事的帮助。谢谢大家
看来你的日期是以下列方式绘制的 名义 类型化的值,而你可能应该将它们绘制成 暂时.
你应该改变 x = alt.X('Date')
到 x = alt.X('Date:T')
来指定x通道是时态的。当你这样做的时候,渲染器将使用一个可能更接近你所想的时间轴标签。
请看 编码数据类型 更多信息请参见文档。