【问题标题】:In Altair / Vega, is there a way to run arbitrary Javascript code on click?在 Altair / Vega 中,有没有办法在点击时运行任意 Javascript 代码?
【发布时间】:2019-09-11 01:11:07
【问题描述】:

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

【问题讨论】:

    标签: javascript python vega altair


    【解决方案1】:

    是的,有点: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
    • 使用 vega-embed 编写单独的 HTML/Javascript 来提取此 JSON 并呈现图表
    • 在此渲染脚本中,使用 View API 将自定义 Javascript 回调附加到图表生成的信号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2011-05-08
      • 2023-04-09
      相关资源
      最近更新 更多