Python 使用条件标记基于值的点选择
如何仅标记X>=3的点?我没有看到任何标记有此输出的点 这与简单的标记点示例非常相似,但我觉得我缺少了一些简单的东西Python 使用条件标记基于值的点选择,python,altair,Python,Altair,如何仅标记X>=3的点?我没有看到任何标记有此输出的点 这与简单的标记点示例非常相似,但我觉得我缺少了一些简单的东西 将牵牛星导入为alt 作为pd进口熊猫 source=pd.DataFrame({ “x”:[1,3,5,7,9], ‘y’:[1,3,5,7,9], ‘标签’:[‘A’、‘B’、‘C’、‘D’、‘E’] }) 点=alt.Chart(源)。标记点()。编码( x='x:Q', y='y:Q' ) text=points.mark\u text( 左对齐, 基线='中间', d
将牵牛星导入为alt
作为pd进口熊猫
source=pd.DataFrame({
“x”:[1,3,5,7,9],
‘y’:[1,3,5,7,9],
‘标签’:[‘A’、‘B’、‘C’、‘D’、‘E’]
})
点=alt.Chart(源)。标记点()。编码(
x='x:Q',
y='y:Q'
)
text=points.mark\u text(
左对齐,
基线='中间',
dx=7
).编码(
text=alt.condition(alt.fieldgteprodicate('x:Q',3),'label',alt.value('')
)
点+文本
谓词不识别编码类型缩写;您应该直接使用字段名:
text=alt.condition(alt.FieldGTEPredicate('x', 3), 'label', alt.value(' '))
更好的是,因为这本质上是一个过滤操作,所以使用一个替代条件值:
import altair as alt
import pandas as pd
source = pd.DataFrame({
'x': [1, 3, 5, 7, 9],
'y': [1, 3, 5, 7, 9],
'label': ['A', 'B', 'C', 'D', 'E']
})
points = alt.Chart(source).mark_point().encode(
x='x:Q',
y='y:Q'
)
text = points.transform_filter(
alt.datum.x >= 3
).mark_text(
align='left',
baseline='middle',
dx=7
).encode(
text='label'
)
points + text