Передать параметры в спецификацию vega-lite?

#vega-lite

#vega-lite

Вопрос:

Я ищу идиоматический способ передачи параметров в спецификацию vega-lite через vegaEmbed(). Например, я хотел бы передать URL-адрес данных, чтобы вместо моей спецификации, содержащей:

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

он содержал что-то вроде:

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

На высоком уровне я хочу отображать визуализации из внешних приложений через URL-адрес, что-то вроде http://localhost/showViz.html?data=today.jsonamp;sort=ascending so, дело не только в указании источника данных, я ищу общий механизм для параметризации моих спецификаций.

Я попытался передать что-то через аргумент opt vegaEmbed, но не смог понять, как получить к нему доступ из спецификации vega-lite (либо как usermeta, либо нет). Если аргумент opt является предпочтительным способом сделать что-то подобное, тогда мой вопрос сводится к «как мне ссылаться на значения opt и / или usermeta из спецификации vega-lite?».

Ответ №1:

Нет, не существует стандартных средств параметризации входных данных, встроенных в Vega или Vega-Lite.

Существуют сторонние инструменты, которые делают что-то похожее на то, что вы имеете в виду, например, Vega Kibana, которая предоставляет синтаксис шаблонов для диаграмм.

Если вы хотите сделать это с помощью встроенного Vega / Vega-Lite, вы всегда можете использовать Javascript для изменения спецификации перед передачей ее в средство визуализации и / или использовать опцию vega-embed patch для предоставления функции javascript, которая исправит спецификацию Vega (не спецификацию Vega-Lite) перед ее использованием.визуализируется.

Комментарии:

1. Хорошо, спасибо. Я уже взламываю спецификацию с помощью Javascript, но это немного громоздко (и кажется немного грязным), поэтому подумал, что может быть более чистый / более идиоматичный способ.