如何单击热图正方形以过滤链接的条形图? (牵牛星)

时间:2020-04-02 14:36:30

标签: python altair

我正在尝试获取它,因此,如果我单击热图的正方形,则相邻的条形图会显示该正方形表示的数据的其他信息(单击时,热图正方形也应“点亮”)。下面的代码使热图按我想要的方式工作,但我不明白为什么条形图无法正常工作。

(此外,如果我执行 interval = alt.selection_single(encodings = ['x','y'] ,则条形图开始执行我想要的操作,但是热图停止了工作。)

import altair as alt
from vega_datasets import data
cars = data.cars()

interval = alt.selection_single()

chart = alt.Chart(cars).mark_bar().encode(
    x=alt.X('Miles_per_Gallon', bin=True), 
    y=alt.X('Horsepower', bin=True),
    color=alt.condition(interval, 'count()', alt.value('lightgray'))
).properties(
    selection=interval
)

hist = alt.Chart(cars).mark_bar().encode(
    y='count()',
    x='Origin'
).transform_filter(interval)

chart | hist

Screenshot

1 个答案:

答案 0 :(得分:2)

当您希望this.processEndpoint.processList(request) .pipe( map(result => { this.listOfProcesses = result.data; return linkedProcesses = result.data.map(item => this.processEndpoint.linkedProcessesList(item.id)); }), switchMap(linkedProcessesObservables => forkJoin(linkedProcessesObservables)) ) .subscribe(linkedProcessesResult => { this.listOfLinkedProcesses = linkedProcessesResult; }); single选择适用于不同的数据视图时,您需要指定选择适用的multifields,以告知第二张图表触发什么。例如:

encodings

出于某种原因,尽管这打破了色彩条件–我认为这可能是Vega-Lite中与选择和合并有关的错误。您可以通过以下两种方法解决此问题,一种用于突出显示,另一种用于过滤器:

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

enter image description here