【问题标题】:R: Vertex attributes do not match vertex names in an arc plotR:顶点属性与弧图中的顶点名称不匹配
【发布时间】: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)与图上的顶点名称相匹配?

【问题讨论】:

标签: r plot igraph


【解决方案1】:

您只需要显式设置vertices= 参数。这就是函数如何知道将每个 *.nodes 属性分配给什么值的方式。您可以使用它来代替您现在设置的 ordering= 参数,因为您根本没有重新排序节点。

arc.p<-arcplot(edgelist, vlabels, cex.labels = 0.8,
    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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多