如何R中指定顶点的标签
问题描述:
我有如下的矩阵:如何R中指定顶点的标签
jerry peter king
jerry 1 0 0
peter 0 1 0
king 1 1 1
现在我想提请站立与下面的代码的矩阵图:
t <- read.table("../data/table.dat");
adjm <- data.matrix(t);
g1 <- graph.adjacency(adjm,add.colnames=NULL);
plot(g1, main="social network", vertex.color="white", edge.color="grey", vertex.size=8,
vertex.frame.color="yellow");
顶点的标签是id,所以我的问题是如何通过矩阵的dimname来设置顶点的标签?
我试图代码
vertex.label=attr(adjm,"dimnames")
但得到错误的图形。
答
有2种方法可以做到这一点:
-
当您创建图形对象,分配名字叫
label
顶点属性。这是默认情况下plot.igraph()
寻找绘图时。g1 <- graph.adjacency(adjm,add.colnames='label')
-
使用
V
迭代提取name
顶点属性,也就是如果你使用add.colnames=NULL
他们是如何存储。plot(g1, main="social network", vertex.color="white", edge.color="grey", vertex.size=8, vertex.frame.color="yellow", vertex.label=V(g1)$name)
无论哪种方式,都会给你想要的结果。例如:
谢谢,它的工作原理。 –