Динамически отображать другой график внутри узла в Cytoscape.js

#cytoscape.js #cytoscape

#cytoscape.js #cytoscape

Вопрос:

Я использую Cytoscape.js для визуализации большой вложенной структуры данных. Прямое отображение всего графика затрудняет его интерпретацию, поэтому сначала я показываю только узлы верхнего уровня. Затем, когда щелкнут по узлу, я хочу показать подграф внутри узла.

Моя первая попытка состояла в том, чтобы просто добавить подграф в качестве дочерних узлов. Дочерние узлы изначально имеют visibility: hidden , но отображаются после выбора их родительского узла (сам родительский узел также немного меняет свой внешний вид, когда это происходит, чтобы указать, что он получил фокус). Это в некоторой степени работает. Однако узлы верхнего уровня отображаются очень большими, очевидно, поскольку теперь они содержат свои скрытые дочерние узлы.

Поэтому моим альтернативным решением было бы динамически добавлять дочерние узлы в тот момент, когда их родительский получает фокус. Однако для этого, вероятно, потребуются некоторые дополнительные ограничения на Cytoscape, поскольку я не хочу, чтобы родительский узел увеличивался или перемещался, когда это происходит. Таким образом, в основном границы родительского узла становятся холстом, на котором должен быть нарисован дочерний график.

Тогда мои двойные вопросы заключаются в том, (1) может ли Cytoscape действительно вводить такие ограничения, и (2) действительно ли это лучшее решение для этой конкретной проблемы.

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

1. Вы проверили github.com/iVis-at-Bilkent/cytoscape.js-expand-collapse ?

2. @Ravenous Спасибо за это! На самом деле я наткнулся на их страницу на GitHub, но сначала отклонил ее из-за анимированного GIF (который не очень хорошо демонстрирует их идеи). После проверки демонстрационных версий это действительно очень полезно и близко к тому, что я хочу. Единственным недостатком является то, что остальная часть графика немного перемещается при расширении узла, в то время как в идеале я хотел бы, чтобы все оставалось стабильным и чтобы вложенный график расширялся внутри родительского узла. Но все же, это очень полезно!