【发布时间】:2021-12-09 02:40:59
【问题描述】:
如何在 R 或 Python 中使用 igraph 在 n 节点上创建循环图?
它应该看起来像这样,但是对于任意数量的节点:
编辑:由于要求我添加代码尝试,因此我发现 R 中的一种可能性太复杂了:
n <- 5
make_graph( c(tail(rep(1:n, each=2), -1), 1) )
【问题讨论】:
如何在 R 或 Python 中使用 igraph 在 n 节点上创建循环图?
它应该看起来像这样,但是对于任意数量的节点:
编辑:由于要求我添加代码尝试,因此我发现 R 中的一种可能性太复杂了:
n <- 5
make_graph( c(tail(rep(1:n, each=2), -1), 1) )
【问题讨论】:
对于python,你需要安装:
pip install python-igraph
pip install pycairo
然后您可以使用Graph.Ring 中的Graph.Ring,如下所示:
import igraph as ig
nodes = 5
g = ig.Graph.Ring(n=nodes, circular=True)
ig.plot(g,vertex_label = range(1,nodes+1))
在 R 中,相关的 igraph 函数是 make_ring()。您可以在 Doc 中阅读:
创建环形图 描述 环是一维格子,这个函数是 make_lattice 的一个特例。
用法 make_ring(n, 定向 = FALSE, 相互 = FALSE, 循环 = TRUE)
【讨论】:
Graph.Ring 的。谷歌?文档搜索?
【讨论】:
在带有n 顶点的 R 中:
n <- 8
seq_len(n) %>%
{c(head(., -1), tail(., -1))} %>%
matrix(ncol = 2) %>%
rbind(c(n, 1)) %>%
graph_from_edgelist(directed = FALSE)
【讨论】:
graph_from_edgelist(matrix(c(seq_len(n), c(2:n, 1)), ncol = 2), directed = FALSE)