gpt4 book ai didi

r - 如何在 R 中使用 igraph 选择图形顶点?

转载 作者:行者123 更新时间:2023-12-05 02:32:56 28 4
gpt4 key购买 nike

在 Python 中,您可以简单地使用 graph.select() (至少在阅读文档时:https://igraph.org/python/doc/api/igraph.VertexSeq.html)根据值选择顶点。我有一个连接共享 Actor 的电影的巨大图表。但是,我只想从该图中选择一个顶点,然后将其与其直接邻居一起绘制。当我只想选择单个顶点时遇到问题。

我曾希望类似的东西能奏效

graph.movies.select('Snatch (2000)')

但没有运气。

我采用的另一种方法是通过过滤掉所有其他顶点然后添加边来获取单个 Snatch 顶点。

snatch.graph <- induced.subgraph(g.movies, vids=V(g.movies)$name == 'Snatch (2000)')
snatch.edges <- edges(g.movies, "Snatch (2000)")
add_edges(snatch.graph, snatch.edges$edges)

然而,这会返回一个只有抓取顶点的空图。

我的目标是抓取 Snatch 顶点并绘制该顶点、它的直接邻居以及它们之间的边。有什么建议么?非常感谢 :D 在这上面停留了很长一段时间 -.-

最佳答案

您可以使用 ?ego 抓取邻居或使用 ?make_ego_graph 形成图形。 (根据您的图是否有向,您可能需要使用 mode 参数)。

一个例子:

library(igraph)

# create some data
set.seed(71085002)
n = 10
g = random.graph.game(n, 0.25)
V(g)$name = seq_len(n)

# grab neighbours of node "1"
# set mindist = 0 to include node itself
# set order for the stepsize of the neigbourhood;
nb_g = make_ego_graph(g, order=1, node="1", mindist=0)[[1]]

# plot
# you could use the `layout` argument to
# keep nodes in the same position
op = par(mfrow=c(1,2), oma=rep(0,4))
plot(g, vertex.size=0, vertex.label.cex=3, main="Full graph")
plot(nb_g, vertex.size=0, vertex.label.cex=3, main="Sub graph")
par(op) # reset

enter image description here

如果您只需要相邻节点的列表:

ego(g, order=1, node="1", mindist=0)
# [[1]]
# + 4/10 vertices, named, from 00cfa70:
# [1] 1 4 6 9

关于r - 如何在 R 中使用 igraph 选择图形顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71085002/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com