在 Altair / Vega 中,有没有办法在点击时运行任意 Javascript 代码?



我希望使用 Altair 创建的可视化是可点击的,并在单击图表的某些区域时执行操作。具体来说,我想在单击图表的某些部分时滚动到文本框中的某些点。有没有办法做到这一点?

是的,有点:Vega(渲染 Altair/Vega-Lite 图表的库(有一个定义明确的信号 API,你可以在这里阅读:https://vega.github.io/vega/docs/api/view/#signals。这允许您为通过与图表交互生成的信号定义自定义 javascript 回调。

但是,在 Vega-Lite 或 Altair 中没有高级接口,因此要使用它,您必须直接使用渲染图表的 Javascript 中的视图 API。

如果您想从 Altair 执行此操作,最好的方法可能是:

  • 定义您的 Altair 图表,并使用chart.to_json()将其导出为 JSON
  • 编写单独的 HTML/Javascript 来摄取此 JSON 并使用 vega-embed 呈现图表
  • 在此渲染脚本中,使用 View API 将自定义 Javascript 回调附加到图表生成的信号。

最新更新