问题描述
我正在尝试找到一种在altair / vega-lite中将标签添加到binding_select
的方法。目前,自定义select ui元素中显示的值的唯一方法似乎是更改列的名称。这适用于常规值,但是如何更改“无”值的标签以清除选择呢?我试图这样做是为了能够使图表公开可用。在选择ui中使用“ null”值时,可能会造成混淆。
region_dropdown = alt.binding_select(
options = [None,'CHN','IND','RUS','USA','AFR','LAM','EUR']
)
region_selection = alt.selection_single(
fields=['region'],bind=region_dropdown,init={'region': 'USA'}
)
alt.Chart(data).transform_calculate(
per_capita='datum.cum_co2/datum.cum_population'
).encode(
x='year',y=alt.Y('mean(per_capita):Q'),color=alt.condition(region_selection,'region:N',alt.value('rgba(0,0.05)')),detail='region:N'
).mark_line().add_selection(region_selection)
解决方法
您可以使用labels
中的binding_select
选项来重命名选择标签:
region_dropdown = alt.binding_select(
options = [None,'CHN','IND','RUS','USA','AFR','LAM','EUR'],labels = ['All','EUR']
)
示例:
import altair as alt
import vega_datasets
data = vega_datasets.data.cars()
region_dropdown = alt.binding_select(
options = [None,'Europe','Japan'],'Japan']
)
region_selection = alt.selection_single(
fields=['Origin'],bind=region_dropdown,init={'Origin': 'USA'}
)
alt.Chart(data).encode(
x='Year',y=alt.Y('mean(Horsepower):Q'),color=alt.condition(region_selection,'Origin:N',alt.value('rgba(0,0.05)')),detail='Origin:N'
).mark_line().add_selection(region_selection)