[英]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.