#cytoscape.js #cytoscape
Вопрос:
Я использую cytoscape.js 3.19.1 и я не могу понять, как объединить несколько ребер в одно и увеличить вес этого одного ребра.
Сейчас я ищу решение, в котором 2 ребра объединяются в одно шириной 2, 3 ребра объединяются в одно шириной 3 и т. Д.
Я меняю цвет узлов с помощью этого кода:
style: [
{
selector: 'node',
css: {
'content': 'data(name)',
'text-outline-color': 'red',
},
style: {
'background-color': 'data(color)',
'label': 'data(name)',
'color': "white",
}
},
{
selector: 'edge',
css: {
'curve-style': 'bezier',
'target-arrow-shape': 'triangle'
}
}
],
и этот ввод цитоскейпа работает: {‘узлы’: [{‘данные’: {‘идентификатор’: ‘1464848862’, ‘имя’: ‘мое имя‘, ‘цвет’: ‘#FFA00F’}}….
Теперь я мог бы сделать то же самое для ширины линии, но я бы предпочел не просматривать данные «вручную», чтобы выяснить, какие 2 узла подключаются, как часто это происходит, определить, какой толщины должны быть эти линии, а затем удалить все дубликаты, которые больше не нужно рисовать.
Есть ли какой-нибудь другой способ?
Большое спасибо за любые предложения!
Ответ №1:
На самом деле, вы могли бы добиться этого, используя несколько разных стилей по краям. «стог сена» или «прямой» могут быть полезны. Проверьте их https://js.cytoscape.org/demos/edge-types/
Или вы могли бы использовать https://github.com/iVis-at-Bilkent/cytoscape.js-expand-collapse
Проверьте его демонстрационную версию и сверните края.
Комментарии:
1. Спасибо канбакс — это отличная информация. Оба подхода выглядят так, как будто они могут сработать, и я попробую их обоих, чтобы понять, что сработает лучше всего. Ура !