将参数传递给 vega-lite 规范?

Pass parameters to a vega-lite spec?

我正在寻找一种通过 vegaEmbed() 将参数传递到 vega-lite 规范的惯用方法。例如,我想传递数据 url,而不是我的规范包含:

"data": {"url": "filename.json"},

它包含如下内容:

"data": {"url": parameters["dataURL"]},

在高层次上,我想通过 url 显示来自外部应用程序的可视化效果,类似于 http://localhost/showViz.html?data=today.json&sort=ascending 所以这不仅仅是指定数据源,我正在寻找一个通用的参数化我的规格的机制。

我尝试通过 vegaEmbed 的 opt 参数传递一些东西,但无法弄清楚如何从 vega-lite 规范(或者 usermeta 或不)。如果 opt 参数是执行此类操作的首选方法,那么我的问题就是“我如何引用 opt and/or usermeta 来自 vega-lite 规范的值?"。

不,没有标准方法可以将 built-in 到 Vega 或 Vega-Lite 的输入参数化。

有 third-party 工具可以执行与您所想的类似的事情,例如 Vega Kibana,它为图表提供模板语法。

如果您想使用原生 Vega/Vega-Lite 执行此操作,您始终可以使用 Javascript 在将规范传递给渲染器之前修改规范,and/or 使用 vega-embed patch 选项以提供 javascript 函数,该函数将在 Vega 规范(而非 Vega-Lite 规范)被渲染之前对其进行修补。