如何在 igraph 网络中设置顶点名称的位置

how to set position of vertex names in igraph network

我需要将顶点标签的位置设置在它们的内部或旁边。我应该在 plot 中更改哪个参数来更改它?

我已经尝试更改 vertex.label.cex 和 vertex.label.dist 参数,但标签仍然位于图的角落并且看起来很乱。

plot(g, 
 vertex.color= "yellow",
 vertex.size = degree(g)*0.3,
 vertex.label=names,
 vertex.label.cex = degree(g)/1000,
 edge.width= 0.5,
 vertex.label.dist=0.1)

您对 vertex.label.dist 的想法是正确的。您只是使用了太小的值。

由于你没有提供你的图表,我将用一个随机图表来说明(并对你的绘图语句进行一些修改以匹配该图表)。

library(igraph)

set.seed(1234)
g = erdos.renyi.game(15, 0.2)
plot(g)

par(mfrow=c(1,2))
set.seed(4321)
plot(g, 
 vertex.color= "yellow",
 vertex.size = degree(g),
 edge.width= 0.5,
 vertex.label.dist=0.1,
 margin=-0.2, 
 main="vertex.label.dist=0.1")

set.seed(4321)
plot(g, 
 vertex.color= "yellow",
 vertex.size = degree(g),
 edge.width= 0.5,
 vertex.label.dist=1,
 margin=-0.2,
 main="vertex.label.dist=1")

请注意,vertex.label.dist 的值越大,标签明显偏移。