我希望使用 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 回调附加到图表生成的信号。