2016-05-16 3 views
0

Я использую библиотеку Pythonnetworkx создать ориентированный граф с почти 2к узлами, и я хочу, чтобы визуализировать график, используя библиотеку vis.jsВизуализируйте NetworkX с помощью vis.js

Я знаю, как экспортировать его в Json, но Я не в состоянии генерировать совместимый формат, чтобы использовать его непосредственно в vis.js

я должен иметь выход JSON строку, которая выглядит как:

узлов:

[ 
    {id: 1, label: 'a'}, 
    {id: 2, label: 'b'}, 
    {id: 3, label: 'c'} 
] 

края:

[ 
    {from: 1, to: 2, label: 'label1'}, 
    {from: 1, to: 3, label: 'label2'}, 
    {from: 2, to: 4, label: 'label3'}, 
    {from: 2, to: 5, label: 'label3'} 
] 

ответ

1

Я не знаком с viz.js, но если это не жесткое требование я предлагаю вам экспортировать график в GEXF:

G = nx.path_graph(4) # your graph here 
nx.write_gexf(G, "test.gexf") 

, а затем импортировать его в Sigma.js, специальная высокопроизводительная библиотека рисования графиков с использованием the dedicated GEXF importer plugin.

+0

Я попробовал 'sigma.js', но он не показывает атрибуты узлов, поэтому я не так полезен для моего варианта использования, потому что мой график имеет идентификатор и список атрибутов, которые должны отображаться при наведении –

+1

Of Конечно, вы можете показывать атрибуты при наведении на Sigma. Проверьте этот пример https://github.com/jacomyal/sigma.js/blob/master/examples/events.html. – Kikohs

0

Имеется порт Jupyter от visJS. вы можете найти его here.

Пакет находится в Python 2, но начался портирование на Python 3.

Обратите внимание, что, как уже упоминалось, он работает только с Jupyter (это здорово, если вы спросите меня!).

Смежные вопросы