Altair:对选定的列使用可变配色方案
Altair: Use variable color schemes for selected columns
我有一个包含 3 个不同值列的 GeoDataFrame,可以通过下拉菜单单独选择。目前,对于所有 3 个选定的列,图表的配色方案都是 "blues"。但是,我想选择更灵活的配色方案,让每一列都有不同的方案,例如 ['blues','greens','purples'].
我一直在尝试用嵌套条件、编码和 transform_calculate 条件来解决这个问题,但没有成功。
这有可能实现吗?
columns = ['BinPer', 'DinPer', 'BEVinPer']
select_box = alt.binding_select(options=columns, name='column')
sel = alt.selection_single(fields=['column'], bind=select_box, init={'column': 'BinPer'},
clear=False,
on="click[event.shiftKey&!event.shiftKey]")
map_ = alt.Chart(source).transform_fold(
columns,
as_=['column', 'value']
).transform_filter(
sel
).mark_geoshape(
stroke='white',
strokeWidth=0.5
).encode(
color = alt.Color('value:Q', scale=alt.Scale(scheme='blues'))
).add_selection(
sel
)
map_
不,无法根据从内置下拉菜单中选择的值改变单个图表中的配色方案。
如果你想做这样的事情,最好的选择可能是使用像 ipywidgets 这样的工具来定义下拉菜单,并为每个值输出一个具有所需配色方案的图表。
我有一个包含 3 个不同值列的 GeoDataFrame,可以通过下拉菜单单独选择。目前,对于所有 3 个选定的列,图表的配色方案都是 "blues"。但是,我想选择更灵活的配色方案,让每一列都有不同的方案,例如 ['blues','greens','purples'].
我一直在尝试用嵌套条件、编码和 transform_calculate 条件来解决这个问题,但没有成功。 这有可能实现吗?
columns = ['BinPer', 'DinPer', 'BEVinPer']
select_box = alt.binding_select(options=columns, name='column')
sel = alt.selection_single(fields=['column'], bind=select_box, init={'column': 'BinPer'},
clear=False,
on="click[event.shiftKey&!event.shiftKey]")
map_ = alt.Chart(source).transform_fold(
columns,
as_=['column', 'value']
).transform_filter(
sel
).mark_geoshape(
stroke='white',
strokeWidth=0.5
).encode(
color = alt.Color('value:Q', scale=alt.Scale(scheme='blues'))
).add_selection(
sel
)
map_
不,无法根据从内置下拉菜单中选择的值改变单个图表中的配色方案。
如果你想做这样的事情,最好的选择可能是使用像 ipywidgets 这样的工具来定义下拉菜单,并为每个值输出一个具有所需配色方案的图表。