#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, но это немного громоздко (и кажется немного грязным), поэтому подумал, что может быть более чистый / более идиоматичный способ.