我有一个矩阵如下:
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)
但得到错误的图表.
是否有可能重命名igraph中的顶点.我想在顶点上用不同的符号多次绘制某个图形.鉴于以下igraph az:
> az
IGRAPH DN-- 24 23 --
+ attr: name (v/c), label (v/c), color (v/c), fill (v/c), width (e/n)
Run Code Online (Sandbox Code Playgroud)
同
> V(az)
Vertex sequence:
[1] "x1" "x2" "x3" "x4" "x5" "x7" "x8" "x9" "x10" "x11" "x12" "x13"
[13] "x14" "x15" "x16" "x19" "x20" "x21" "x22" "x23" "x24" "x25" "x26" "x27"
Run Code Online (Sandbox Code Playgroud)
我想改变顶点,让我们说y1-y27然而,
V(az)$name <- paste("y",1:27,sep="")
Run Code Online (Sandbox Code Playgroud)
不管用.我怎样才能做到这一点?提前致谢.
干杯
编辑:为了记录.
V(az)$name <- paste("y",1:27,sep="")
Run Code Online (Sandbox Code Playgroud)
以这种方式工作,以便它返回:
> V(az)
Vertex sequence:
[1] "y1" "y2" "y3" "y4" "y5" "y7" "y8" "y9" "y10" "y11" "y12" "y13" …Run Code Online (Sandbox Code Playgroud) 我在使用R加权igraph中添加顶点标签时遇到了一些问题.
图的数据框是:
df <- read.table(text=
"From, To, Weight
A,B,1
B,C,2
B,F,3
C,D,5
B,F,4
C,D,6
D,E,7
E,B,8
E,B,9
E,C,10
E,F,11", sep=',',header=TRUE)
# From To Weight
# 1 A B 1
# 2 B C 2
# 3 B F 3
# 4 C D 5
# 5 B F 4
# 6 C D 6
# 7 D E 7
# 8 E B 8
# 9 E B 9
# 10 E C 10
# 11 E F 11
Run Code Online (Sandbox Code Playgroud)
我使用: …