我有一个矩阵如下:
jerry peter king
jerry 1 0 0
peter 0 1 0
king 1 1 1
Run Code Online (Sandbox Code Playgroud)
现在我想用下面的代码绘制一个代表矩阵的图形:
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");
Run Code Online (Sandbox Code Playgroud)
顶点的标签是id,所以我的问题是如何通过矩阵的dimnames设置顶点的标签?
我试过这个代码
vertex.label=attr(adjm,"dimnames")
Run Code Online (Sandbox Code Playgroud)
但得到错误的图表.
Joh*_*lby 10
有两种方法可以做到这一点:
创建图形对象时,将名称分配给名为的顶点属性label.这是plot.igraph()绘图时查找的默认值.
g1 <- graph.adjacency(adjm,add.colnames='label')
Run Code Online (Sandbox Code Playgroud)使用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)
Run Code Online (Sandbox Code Playgroud)无论哪种方式都会给你你想要的结果.就像是:
