[英]Python networkx node spacing
我有 1000 个不同的名称,每个名称构成一个节点。 每个名称可以无限次地与 0..1000 个其他名称连接。 我想以这样一种方式绘制它,即两个节点之间的距离与它们连接的次数成反比。
例子:
'node1' : ['node2','node2','node2','node2','node2','node3']
'node2' : ['node1','node1','node1','node1','node1']
'node3' : ['node1']
node1
和node2
应该挤在一起, node3
应该离得更远。
那可能吗? 目前我正在使用以下代码绘图:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_nodes_from(grapharr.keys())
for k in grapharr:
for j in grapharr[k]:
G.add_edge(k,j)
nx.draw_networkx(G, **options)
grapharr
是一个字典结构,其中键是节点,值是包含特定节点连接的数组。
一般情况下是不可能的。 看看这张图:
想象一下,中心节点彼此之间有一千个连接,但“方形”节点之间只有一个连接。 你将如何绘制它们?
无论如何,您可以将连接级别设置为边缘权重,并使用力导向布局来尝试创建最佳布局(当然,但不是 100% 最佳)。 在networkx
,有:
prog='neato'
参数的graphviz_layout
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.