单击图表时在 Altair 交互式图例中保留多选

问题描述

我在 altair 中创建了一个带有交互式图例的复合条形图,其中可以选择一个图表中的条形和图例元素来过滤另一个图表。当仅选择单个图例元素时,这很有效。 However,when multiple legend elements are selected,selecting a bar alters the legend selection.

请参阅下面的最小示例。 In this image,选择了 Crookston 和 Duluth 站点,结果是按年的产量总和图表过滤到这两个站点。但是,如果我然后单击品种图表产量总和中的 Manchuria 条,图例选择会发生变化,因此只选择了德卢斯,如图 in this image。 (如果我改为按住 Shift 键并单击 Manchuria 栏,则图例中只会选择 Crookston。)期望的结果是 Crookston 和 Duluth 在图例中保持选中状态。

是否可以防止点击图表时图例的选择发生变化?

import altair as alt
from vega_datasets import data

source = data.barley()

bar_selection = alt.selection_multi(encodings=["y"])
legend_selection = alt.selection_multi(encodings=["color"],bind="legend")

varieties = alt.Chart(source).mark_bar().encode(
    x="sum(yield)",y="variety",color="site",opacity=alt.condition(
        bar_selection,alt.value(1.0),alt.value(0.25)
    ),).add_selection(bar_selection)

years = alt.Chart(source).mark_bar().encode(
    x="sum(yield)",y="year:N",).transform_filter(
    bar_selection
).transform_filter(
    legend_selection
)

(varieties & years).add_selection(legend_selection)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)