Избегайте перекрытия узлов и ребер в Networkx - PullRequest
0 голосов
/ 15 января 2019

У меня есть фрейм данных с именем final_net, который напоминает источник и назначение твитов:

From     Destination    Count
A        B              31
A        C              25
B        C              24
...

То, что я пытаюсь сделать, это создать диаграмму сети с использованием Networkx. Для этого я написал следующий код:

# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

plt.figure(figsize=(20,10))
# Build your graph
G=nx.from_pandas_edgelist(final_net.head(25), 'from', 'to', create_using=nx.DiGraph() )

# Custom the nodes:
nx.draw(G, with_labels=True, 
        node_color='skyblue', node_size=2200, 
        edge_color=final_net.head(25)['count'], width=3, edge_cmap=plt.cm.OrRd,
        arrowstyle='->',arrowsize=20,
        font_size=10, font_weight="bold",
        pos=nx.random_layout(G, seed=13))

Я беру только самые частые 25 ссылок и создаю схему сети. Но я хочу привести диаграмму немного в порядок, чтобы:

  • узлы не перекрываются
  • края не перекрываются
  • узлы расположены близко друг к другу, чтобы избежать слишком длинных ребер

Мой результат: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...