我正在尝试使用 Altair lib 创建热图,但我希望使用滑块过滤我的数据以获取不同的视图。滑块适用于仅标准颜色的热图,但是当我尝试向框中添加文本以描述每个单元格中的值时,我得到下面的 javascript 错误。(在没有任何过滤器滑块的情况下,将文本添加到热图中可以正常工作。)
import altair as alt
import pandas as pd
source = pd.DataFrame({'year':[2017, 2017, 2018, 2018],
'age':[1, 2, 1, 2],
'y':['a', 'a', 'a', 'a'],
'n':[1, 2, 3, 4]})
slider = alt.binding_range(min=2017, max=2018, step=1)
select_year = alt.selection_single(name="my_year_slider", fields=['year'], bind=slider)
base = alt.Chart(source).add_selection(select_year).transform_filter(select_year)
heatmap = base.mark_rect().encode(
x='age:O',
y='y:O',
color='n:Q')
text = base.mark_text(baseline='middle').encode(
x='age:O',
y='y:O',
text='n:Q')
heatmap + text
这返回Javascript Error: Duplicate signal name: "my_year_slider_tuple"