Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用条件标记基于值的点选择_Python_Altair - Fatal编程技术网

Python 使用条件标记基于值的点选择

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

如何仅标记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(
左对齐,
基线='中间',
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