Я пытаюсь использовать набор ребер, но надеялся, что толщина ребра будет определяться самими ребрами, а не исходным узлом, из которого они происходят.
The example given in the docs is here:https://vega.github.io/editor/#/examples/vega/edge-bundling
The two data sources are here:https://github.com/vega/vega-datasets/blob/master/data/flare-dependencies.json
https://github.com/vega/vega-datasets/blob/master/data/flare.json
В этом примере толщина краев определяется строкой 170 в скрипте, где 'strokeWidth' присвоено значение 1,5.
"encode": {
"enter": {
"interpolate": {"value": "bundle"},
"strokeWidth": {"value": 1.5}
},
Я надеялся использовать значение «размер» во входных данных Flare.json для индивидуальной настройки каждой ширины. Однако в примере создается дерево из файла flash-dependencies.json, и хотя дерево извлекает это значение, видимое в VEGA_DEBUG.view.data('dependencies')
, я не знаю, как получить к нему доступ и получить эти значения, чтобы установить каждый из элементов «strokeWidth» для края.
Не подскажете, как мне это сделать?
С уважением,
На это мне был дан ответ следующего содержания:
Сначала добавьте формулу для добавления значения размера из набора данных Flare.json в качестве поля «strokeWidth», написав это в строке 90 в примере:
{
"type": "formula",
"expr": datum.size/10000",
"as": "strokeWidth"
},
Затем в метках установите значение strokeWidth для каждого ребра в edgebundle на связанное значение 'strokeWidth' в столбце, который теперь создан, написав это в строке 176 после вышеуказанного изменения:
"strokeWidth": {"field": "strokeWidth"}
После этого диаграмма должна отображаться с ребрами толщиной, определяемой этой переменной «размер». Обратите внимание, что в этом примере мне пришлось масштабировать значение «размер» в исходном наборе данных на 10 000, чтобы задать разумную толщину линий.
На практике я бы масштабировал данные перед тем, как представить их Vega.