【发布时间】:2014-12-04 04:22:23
【问题描述】:
我希望创建一个网络弧线图。我的问题是弧是正确的,节点的顺序也是正确的。但是,节点的大小(度)以及填充和边框颜色(vfill、vborder)与顶点的属性不匹配。
我的 .gml 文件可以在https://dl.dropboxusercontent.com/u/42761499/myarc.gml下载
代码:
library(igraph)
library(arcdiagram)
dat.g2 = read.graph("myarc.gml", format = "gml")
vlabels<-get.vertex.attribute(dat.g2, "name")
vfill<-get.vertex.attribute(dat.g2, "vfill")
vborder<-get.vertex.attribute(dat.g2, "vborder")
vgroups<-get.vertex.attribute(dat.g2, "group")
degrees<-get.vertex.attribute(dat.g2,"degree")
edgelist<-get.edgelist(dat.g2)
values<-as.numeric(get.edge.attribute(dat.g2, "value"))
par(mai=c(2.25,.25,.25,.25))
arc.p<-arcplot(edgelist, cex.labels = 0.8,
ordering = vlabels,
show.nodes = TRUE,
col.nodes = vborder,
bg.nodes = vfill,
cex.nodes = sqrt(degrees)/20,
pch.nodes = 21,
lwd.nodes = 2,
line = 0.3,
col.arcs = hsv(0, 0, 0.1, 0.4),
lwd.arcs = sqrt(values)/2,
horizontal=TRUE,
axes=FALSE)
在图中,颜色和节点大小有时是错误的。 “其他投诉”应为紫色和 CHPAIN 黄色。至少 CHPAIN 和 CARDOTH 的大小是错误的(CHPAIN 大于 CARDOTH,参见 myarc.gml)。我认为问题是因为在边缘列表中,每个节点的名称首先出现的顺序与顶点顺序略有不同。 通过边缘列表顺序,我的意思是节点名称的第一个独特外观,当一个人查看行然后向下查看列时。即边缘列表的前 5 行内容为:
- 从到
- 1 胸痛,MI,CA,VF AF
- 2 胸痛,MI,CA,VF 晕厥
- 3 胸痛,MI,CA,VF SOB
- 4 胸痛,MI,CA,VF CHPAIN
- 5 胸痛,MI,CA,VF CARDOTH
所以边缘列表顺序是“胸痛,MI,CA,VF”,“AF”,“晕厥”,“SOB”,“CHPAIN”,“CARDOTH”...... 顶点顺序是“胸痛,MI,CA,VF”,“AF”,“晕厥”,“SOB”,“其他主诉”,“CHPAIN”...
如何让顶点属性(vfill、vborder、degrees)与图上的顶点名称相匹配?
【问题讨论】:
-
arcdiagram包在这里:github.com/gastonstat/arcdiagram 万一有人想知道......