У меня есть фрейм данных с именем 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 ссылок и создаю схему сети. Но я хочу привести диаграмму немного в порядок, чтобы:
- узлы не перекрываются
- края не перекрываются
- узлы расположены близко друг к другу, чтобы избежать слишком длинных ребер
Мой результат: