有没有办法动态更改 Altair 中选定点的 zorder?

Pet*_*ete 2 python altair

我有一个 Altair 图,其中多个点位于相似的xy位置,类似于Altair 教程中的该图。由于我使用工具提示,我希望所选点上升到顶部(即增加matplotlib术语中的 zorder )。有没有办法做到这一点?(如果没有,我很乐意提交功能请求!)

jak*_*vdp 5

不,点的 z 顺序是由图层内每个子图的顺序设置的,并且不能动态调整。这是 Vega-Lite 渲染模型的核心,不太可能改变。

不过,您可以用来实现您想要的效果的一个技巧是覆盖一个由相关选择过滤的重复图表,以使选定的点显示在所有其他点之上。这是一个例子:

import altair as alt
from vega_datasets import data

cars = data.cars()

selection = alt.selection_single(on='mouseover', nearest=True)

base = alt.Chart(cars).mark_point().encode(
    x='Horsepower:Q',
    y='Miles_per_Gallon:Q',
    color=alt.condition(selection, 'Origin:N', alt.value('lightgray'))
)

alt.layer(
  base.add_selection(selection),
  base.transform_filter(selection).encode(tooltip='Name:N'),
)
Run Code Online (Sandbox Code Playgroud)

实时图表视图