在交互式 VConcatChart 中链接水平刻度?

linked horizontal scales in interactive VConcatChart?

我可以将多个 interactive() 图表放在一个 VConcatChart 中,但我该如何定义它们,以便在与其中一个图表交互时,所有图表的水平刻度范围都相同?

您需要确保用于交互的选择对象在每个子图表中都是相同的。有几种方法可以确保这一点,但最简单的方法是在基本图表中仅调用一次 interactive(),然后为绘图的每个面板修改该基本图表。

例如:

import altair as alt
from vega_datasets import data

cars = data.cars()

chart = alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    color='Origin'
).interactive()

alt.vconcat(
    chart.encode(y='Miles_per_Gallon'),
    chart.encode(y='Acceleration')
)