Инструменты для визуализации иерархических сетей и оценки воздействия удаления узлов из сети - PullRequest
1 голос
/ 21 октября 2019

использует NetworkX для визуализации потока данных от системы к системе. Это работает хорошо, но визуализация кажется немного тусклой, кроме того, я хотел бы взаимодействовать с сетью, делать такие вещи, как удаление узлов или «проверка» узлов. Я также попробовал такие инструменты, как Power BI и Gephi, но у них обоих были проблемы.

Какие инструменты BI / библиотеки Python и т. Д. Существуют для эффективной визуализации и взаимодействия с ориентированными сетевыми графами?

1 Ответ

1 голос
/ 21 октября 2019

У вас есть две проблемы, которые следует рассматривать отдельно: визуализация и интерактивность.


Визуализация:

В NetworkX есть несколько инструментов для эффективной визуализации иерархических графиков. Они используют библиотеку Graphviz и интерфейс pygraphviz / pydot . Вот пример:

import networkx as nx

# Create the hierarchical graph (DAG)
G = nx.fast_gnp_random_graph(70, 0.02)
G.remove_edges_from([(x, y) for (x, y) in G.edges if x > y])
G = nx.subgraph(G, max(nx.connected_components(G), key=lambda x: len(x)))
# Draw it with default function
nx.draw(G, node_size=50)

enter image description here

# Draw it with graphviz_layout
nx.draw(G, node_size=50, pos=nx.nx_agraph.graphviz_layout(G, prog='dot'))

enter image description here

Если вы хотите визуализировать свой график с помощью самого Graphviz, вы можете преобразовать его в DOT-файл и использовать всю мощь Graphviz позже.

Вы также можете использовать библиотеки Javascript, такие как Bokeh или D3.js , чтобы рисовать графики NetworkX чуть более интерактивно (вы можете интерактивно выбирать узлы, выделять ребра и некоторые другие функции в этих библиотеках).


Интерактивность:

Эта проблема гораздо сложнее, чем проблема визуализации. Python не имеет стабильных популярных библиотек / программ, которые позволяют вам управлять графиком в интерактивном графическом интерфейсе. Для интерактивности требуется очень сложное программное обеспечение, а в Python его просто нет.

Наиболее подходящее программное обеспечение для вас:

  • Gephi (у него нет визуализации по умолчанию для иерархическойграфики, но вы можете скачать плагин, который позволит вам это сделать).
  • Cytoscape - возможно, он может подойти вам немного больше, чем Gephi.
  • Wolfram Mathematica - хорошо, но стоит денег.
...