Python - Altair - 带选择的堆积条形图

Python - Altair - Stacked Bar Chart With Selection

我已经关注并复制了我的数据集两个教程,链接如下

Stacked Bar Chart : https://altair-viz.github.io/gallery/stacked_bar_chart.html 

Selectable Data : https://altair-viz.github.io/gallery/interactive_cross_highlight.html 

不过,我很难理解 Altair 是否能够将这两者结合起来。

是否可以制作堆叠条形图,其中每个 "subsection" 图都可以 select。所以,如果我有类似

的数据
Category1, Category2

以条为单位,每条可以有小节

Sub1, Sub2

我有一个堆叠条形图,其中与 Sub1 相关的 Categroy1/Category2 部分是蓝色,与 Sub2 相关的部分是橙色,我可以 select 4 个中的任何一个部分(Cat1+Sub1、Cat1+Sub2、Cat2+Sub1、Cat2+Sub2,表示为 2 个堆叠条)然后该部分变为红色。

这是否可能或超出范围,如果可能,我在概念上缺少什么?

是的,这是可能的。您可以在选择器中指定您希望它响应的编码;要响应堆积条的各个部分,请指定 xcolor.

这是一个例子:

import altair as alt
from vega_datasets import data

source = data.barley()

selector = alt.selection_single(encodings=['x', 'color'])

alt.Chart(source).mark_bar().encode(
    x='variety',
    y='sum(yield)',
    color=alt.condition(selector, 'site', alt.value('lightgray'))
).add_selection(
    selector
)

click here 在 vega 编辑器中实时试用。