Altair 是否有任何类型的查询构建器可以生成 vega.js 代码或可以在前端结束的东西?

Does Altair have any sort of query builder than can generate vega.js code or something that can end up in a front end?

这是牵牛星。 https://altair-viz.github.io/user_guide/display_frontends.html

您可以从 python 生成 vega 规格。有没有办法生成查询小部件规范?我的理解是 altair 中的 ipywidget 东西仅适用于笔记本。

是的。请参阅 Altair 文档中的 Input Element Binding

有关有效示例,请参阅 US Population Over Time:

import altair as alt
from vega_datasets import data

source = data.population.url

pink_blue = alt.Scale(domain=('Male', 'Female'),
                      range=["steelblue", "salmon"])

slider = alt.binding_range(min=1900, max=2000, step=10)
select_year = alt.selection_single(name="year", fields=['year'],
                                   bind=slider, init={'year': 2000})

alt.Chart(source).mark_bar().encode(
    x=alt.X('sex:N', title=None),
    y=alt.Y('people:Q', scale=alt.Scale(domain=(0, 12000000))),
    color=alt.Color('sex:N', scale=pink_blue),
    column='age:O'
).properties(
    width=20
).add_selection(
    select_year
).transform_calculate(
    "sex", alt.expr.if_(alt.datum.sex == 1, "Male", "Female")
).transform_filter(
    select_year
).configure_facet(
    spacing=8
)