【问题标题】:Vega-Lite/Altair adding labels to select dropdownVega-Lite/Altair 添加标签以选择下拉菜单
【发布时间】:2020-10-09 13:03:26
【问题描述】:

我正在尝试找到一种将标签添加到 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,0,0.05)')), 
  detail='region:N'
).mark_line().add_selection(region_selection)

【问题讨论】:

    标签: altair vega-lite vega


    【解决方案1】:

    您可以使用binding_select 中的labels 选项重命名您的选择标签:

    region_dropdown = alt.binding_select(
        options = [None, 'CHN', 'IND', 'RUS', 'USA', 'AFR', 'LAM', 'EUR'],
        labels = ['All', 'CHN', 'IND', 'RUS', 'USA', 'AFR', 'LAM', 'EUR']
    )
    

    例子:

    import altair as alt
    import vega_datasets
    
    data = vega_datasets.data.cars()
    
    region_dropdown = alt.binding_select(
        options = [None, 'USA', 'Europe', 'Japan'],
        labels = ['All', 'USA', 'Europe', '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,0,0.05)')), 
      detail='Origin:N'
    ).mark_line().add_selection(region_selection)
    

    【讨论】:

    • 好吧,我现在觉得很傻。我怎么可能没有在文档中找到这个。非常感谢!
    猜你喜欢
    • 2014-05-24
    • 1970-01-01
    • 2011-11-02
    • 2022-06-10
    • 2020-05-15
    • 2017-02-12
    • 2017-10-02
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多