[英]Type error when using alt.condition for mark point angle
我正在尝试 plot 箭头指向左或右并且是绿色或红色,具体取决于条件。 它适用于颜色,但不适用于我用于箭头头部的三角形(标记点)的角度。 这是数据和代码:
color=alt.condition("datum.Current >= datum.Previous",alt.value("green"),alt.value("red"))
angle=alt.condition("datum.Current >= datum.Previous",alt.value(210),alt.value(30))
alt.Chart(df_chart).mark_point(size=200,shape='triangle'
,angle=angle).encode(alt.X('Current'),alt.Y('Group'),color=color)
您不能将条件用作mark
参数,只能根据https://github.com/altair-viz/altair/issues/1976对参数进行encoding
。 现在,由于某种原因,似乎条件在传递给angle
编码时也不起作用,但您可以通过使用 transform_calculate 来计算新字段值并引用该字段来解决这个问题:
alt.Chart(df_chart).mark_point(size=400, shape='triangle').encode(
alt.X('Current'),
alt.Y('Group'),
angle=alt.Angle('angle:Q', scale=alt.Scale(domain=[0, 360])),
color='Group:N'
).transform_calculate(
angle="datum.Current >= datum.Previous ? 210 : 30"
)
定义域很重要,您可以在此处查看另一个示例https://altair-viz.github.io/gallery/wind_vector_map.ZFC35FDC70D5FC69D269883A822C7A53 一般来说,我会避免将条件传递给颜色来控制值,而是使用具有现有字段值的range
参数,如文档https://altair-viz.github.io/user_guide/customization.html#color-域和范围
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.