在具有密度、聚集和计算变换的串联图表中的牛郎星间隔选择

2022-04-13 00:00:00 python altair selection intervals

问题描述

我在同一个DF上构建了两个串联的图表。左侧显示一个数据列的密度转换,右侧显示其他数据列聚合的散点图。

我想在左侧进行间隔选择,并相应地对右侧进行过滤变换。但是,无论我选择什么,右侧都会丢失所有数据点。

有人看到我做错了什么吗?

import altair as alt
from vega_datasets import data
source = data.iris()

brush = alt.selection(type='interval', encodings=['x'])

PDFs = alt.Chart(source
).transform_density(
    'sepalWidth',
    as_=['size','density'],
    groupby=['species']
).mark_line().encode(
    x='size:Q',
    y='density:Q',
    color='species'
).add_selection(
    brush
)

Scatter = alt.Chart(source
).transform_aggregate(
    Frequency = 'count()',
    petalL_mean = 'mean(petalLength)',
    petalW_mean = 'mean(petalWidth)',
    sepalL_mean = 'mean(sepalLength)',
    groupby = ['species']
).transform_calculate(
    Value = 'datum.Frequency / (datum.petalL_mean * datum.petalW_mean)'
).mark_point().encode(
    x = 'sepalL_mean:Q',
    y = 'Value:Q',
    color='species'
).transform_filter(
    brush
)

PDFs | Scatter

解决方案

Interval selection cannot be used for aggregate charts yet in Vega-Lite.错误行为已更新in a recent PR to Vega-Lite to show a helpful message.

相关文章