在下面的示例中,我想排除周末并将Y
绘制为一条直线,并为主要刻度线标签指定一些自定义频率,因为它们将是一个“中断”的时间序列(例如,每个星期一,例如matplotlib
的{{1}})。
我将如何在Altair中做到这一点?
set_major_locator
答案 0 :(得分:2)
一种快速的方法是将轴指定为序数字段。这将产生一个非常丑陋的轴,其中每个刻度都指定了小时数。为了改变这一点,我在数据框中添加了带有给定标签的列。我还添加了a
,默认情况下将其删除以进行序数编码,并将grid
设置为0。
labelAngle
请注意,它将删除所有遗漏的点。因此,也许您想添加一个工具提示。在文档here中对此进行了讨论。
您还可以根据自己的帽子在轴设置中使用df2 = df.assign(label=index.strftime('%b %d %y'))
alt.Chart(df2).mark_line().encode(
x=alt.X('label:O', axis=alt.Axis(grid=True, labelAngle=0)),
y='Y:Q'
)
。
要自定义轴,我们可以使用labelOverlap
来构建轴,并使用mark_text
和自定义数据框来返回网格。它不一定可以很好地扩展,但是可以给您一些想法。
mark_rule