【发布时间】:2019-03-22 05:56:50
【问题描述】:
在networkx中,我可以使用
的第二个参数输入要绘制的节点的位置nx.draw(G, pos)
例如,我可以这样做:
pos[sourceNode]=(x1,y1)
pos[targetNode]=(x2,y2)
我知道 i-graph 有一个参数布局,但我不知道如何使用它!
你能帮帮我吗?
【问题讨论】:
标签: python-3.x igraph networkx
在networkx中,我可以使用
的第二个参数输入要绘制的节点的位置nx.draw(G, pos)
例如,我可以这样做:
pos[sourceNode]=(x1,y1)
pos[targetNode]=(x2,y2)
我知道 i-graph 有一个参数布局,但我不知道如何使用它!
你能帮帮我吗?
【问题讨论】:
标签: python-3.x igraph networkx
你是对的;为了自己定位节点,您需要使用layout 参数到plot。以下是一些基本示例,展示了如何使用自动布局功能以及如何制作自己的功能。
首先,让我们做一个简单的图表作为例子。我正在设置随机种子,以便我的结果可以重现。
from igraph import *
import random
random.seed(123)
g = Graph.Erdos_Renyi(5, 0.5)
plot(g)
当您像这样绘制时,您无法控制布局。
有许多内置函数可以使用特定算法来生成布局。
LO = g.layout_kamada_kawai()
plot(g, layout=LO)
但如果你想完全控制,你需要建立自己的布局。布局只是 [x,y] 对的序列,它们说明了节点的放置位置。虽然 x 按预期方式工作,但低 y 坐标位于顶部,高 y 值位于底部,因此您需要做一些转置来设置布局。
LO = [[0.0,1.0], [1.0,0.0], [1.0,1.0], [0.0,0.0], [0.5,-0.5]]
plot(g, layout=LO)
【讨论】: