Я пытаюсь добавить текстовую метку к узлам в примере force-direct-layout на странице github vega.
Я преобразовал символьную метку в групповую метку и переместил часть «кодировать» в дочернюю «символьную» метку. В этой новой групповой метке я теперь также добавляю текстовую метку, которой я даю имя узла.
Это метка узлов, части "on" и "transform" не указаны, потому что они не изменены.
{
"name": "nodes",
"type": "group",
"zindex": 1,
"from": {
"data": "node-data"
},
"marks": [
{
"type": "symbol",
"encode": {
"enter": {
"fill": {
"scale": "color",
"field": "group"
},
"stroke": {
"value": "white"
}
},
"update": {
"size": {
"signal": "2 * nodeRadius * nodeRadius"
},
"cursor": {
"value": "pointer"
}
}
}
},
{
"type": "text",
"interactive": false,
"encode": {
"enter": {
"fill": {
"value": "black"
},
"fontSize": {
"value": 12
},
"align": {
"value": "center"
},
"text": {
"field": "name"
},
"y": {
"value": -5
}
}
}
}
],
"on": [...],
"transform": [...]
}
Ожидается увидеть имя узла над каждым узлом, но текст И символ станет невидимым.
Шаги для воспроизведения
- Создайте тип "группа", добавьте массив "marks", добавьте объект метки с типом "symbol" в этот массив меток
- -> узлы по-прежнему показывают
- Переместить часть кодирования во вложенную группу символов
- Добавление текстовой метки также ничего не делает
У меня есть догадка, что это свойство "field", которое скрывается, когда вы пытаетесь вложить его, сохраняя данные в родительском элементе, потому что текстовая метка отображается в группе, когда я задаю ей фиксированное значение, но я могу ' Кажется, я понял, как заставить это работать.
(Я думал, что это так, потому что в документах говорится, что дочерняя метка автоматически получает родительские данные при пропуске поля данных)