以下是一个使用Altair库创建双独立滑块的分层图表的示例代码:
import altair as alt
from vega_datasets import data
# 加载数据集
cars = data.cars()
# 创建基础图表
base_chart = alt.Chart(cars).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color='Origin:N'
)
# 创建滑块选择器
slider_1 = alt.binding_range(min=0, max=400, step=10)
slider_2 = alt.binding_range(min=0, max=50, step=1)
selector_1 = alt.selection_single(bind=slider_1, fields=['Horsepower'], init={'Horsepower': 100})
selector_2 = alt.selection_single(bind=slider_2, fields=['Miles_per_Gallon'], init={'Miles_per_Gallon': 20})
# 创建滑块图表
slider_chart = alt.Chart().mark_bar().encode(
y='count()',
color='Origin:N'
).transform_filter(
selector_1
).transform_filter(
selector_2
).properties(
width=300,
height=100
).add_selection(
selector_1,
selector_2
)
# 组合基础图表和滑块图表
alt.vconcat(
base_chart,
slider_chart,
data=cars
)
该示例代码使用Altair库创建了一个基础图表和两个滑块选择器。基础图表显示了汽车的马力与每加仑英里数的关系,并根据汽车的产地进行着色。滑块选择器可以通过滑动滑块来选择马力和每加仑英里数的范围。滑块图表显示了在选择的范围内有多少辆汽车,并根据产地进行着色。最后,通过alt.vconcat()函数将基础图表和滑块图表垂直组合在一起。