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

Jib*_*ril 2 python data-visualization stacked-area-chart altair

我已经按照我的数据集复制了两个教程,链接如下

Stacked Bar Chart : https://altair-viz.github.io/gallery/stacked_bar_chart.html 
Run Code Online (Sandbox Code Playgroud)

Selectable Data : https://altair-viz.github.io/gallery/interactive_cross_highlight.html 
Run Code Online (Sandbox Code Playgroud)

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

是否可以有一个堆叠条形图,其中图表的每个“子部分”都是可选的。所以,如果我有这样的数据

Category1, Category2
Run Code Online (Sandbox Code Playgroud)

条形图,每个条形图可以有小节

Sub1, Sub2
Run Code Online (Sandbox Code Playgroud)

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

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

jak*_*vdp 7

是的,这是可能的。您可以在选择器中指定您希望它响应哪些编码;要响应堆叠条的各个部分,请指定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
)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

单击此处在 Vega 编辑器中实时尝试。