Python 高密度图的链接数据选择点被遮挡

Python 高密度图的链接数据选择点被遮挡,python,altair,Python,Altair,对于具有高数据密度的链接笔刷选择图,当在主图表中选择关联点时,通常无法很好地(或根本无法)看到辅助图表中的选定点。这只是因为它们经常被非选定点遮挡。这甚至可以在牵牛星文献中的绑定、选择和条件示例图中看到。我指的是在绘图X上选择的点,它突出显示了绘图Y上的关联点 我想知道是否有办法让相关的点自动带到“前面”(顶部)?或者,是否可以为未选择的数据设置较低的不透明度(或点大小),以便更强调链接的选择点?alt.condition命令似乎不接受这些选项。无法根据选择更改一组点的z顺序。如您所见,使用条件

对于具有高数据密度的链接笔刷选择图,当在主图表中选择关联点时,通常无法很好地(或根本无法)看到辅助图表中的选定点。这只是因为它们经常被非选定点遮挡。这甚至可以在牵牛星文献中的绑定、选择和条件示例图中看到。我指的是在绘图X上选择的点,它突出显示了绘图Y上的关联点


我想知道是否有办法让相关的点自动带到“前面”(顶部)?或者,是否可以为未选择的数据设置较低的不透明度(或点大小),以便更强调链接的选择点?alt.condition命令似乎不接受这些选项。

无法根据选择更改一组点的z顺序。如您所见,使用条件颜色时,这会导致次优结果,因为选定点可能会被未选定点遮挡。例如:

import altair as alt
from vega_datasets import data

selection = alt.selection_single(encodings=['color'])

alt.Chart(data.cars()).mark_circle(size=200).encode(
    x='Miles_per_Gallon',
    y='Horsepower',
    color=alt.condition(selection, 'Origin:N', alt.value('lightgray'))
).add_selection(selection)

在这种情况下,一个有用的解决方法是同时绘制背景点和前景点,并使用不透明度条件而不是颜色:然后选定的点始终位于前景中:

import altair as alt
from vega_datasets import data

selection = alt.selection_single(encodings=['color'])

background = alt.Chart(data.cars()).mark_circle(size=200).encode(
    x='Miles_per_Gallon',
    y='Horsepower',
    color=alt.value('lightgray')
)

foreground = background.encode(
    color='Origin:N',
    opacity=alt.condition(selection, alt.value(0.8), alt.value(0))
).add_selection(selection)

background + foreground