在交互式 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')
)
我可以将多个 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')
)