如何为可视化分配图节点位置?

3
我有一个用NetworkxDotfile读取的图表,为了可视化它,我需要给每个节点分配位置(x,y)。我该怎么做?
我使用Python3.6的离线模式下的Plotly进行可视化,因此我需要边缘和节点的位置。目前,我尝试提供随机值,但似乎根本不起作用。
基本上,我用于绘图的代码是这个:https://plot.ly/python/network-graphs/。该算法使用随机创建的图形中的“pos”,但对于我来说,我没有这些坐标,也不知道如何生成它们。

2
最好把你的代码粘贴出来以供讨论。 - howie
这段代码: https://plot.ly/python/network-graphs/ - Wael Dimassi
1个回答

2
你要解决的问题被称为“图形布局”。在networkx中有一些图形布局算法:networkx.drawing.layout。以下是一个例子:

你要解决的问题被称为图形布局。在networkx中有一些图形布局算法: networkx.drawing.layout。以下是一个例子:


(注:保留html标签)
import networkx as nx

G = nx.Graph()
G.add_nodes_from([1,2,3,4,5])
G.add_edges_from([(1,2),(2,3),(2,4),(4,5)])
nx.spring_layout(G)

返回所有节点的坐标:

{1: array([-0.73835686,  0.38769421]),
 2: array([-0.11386106,  0.22912486]),
 3: array([0.14264776, 0.81717097]),
 4: array([ 0.21475452, -0.43399004]),
 5: array([ 0.49481564, -1.        ])}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接