我正在用igraph绘图,并且很难用节点大小的属性进行绘图。
我尝试从csv文件中添加大小属性数据,并指示该数据仅适用于边缘列表的一列(边缘列表的另一列具有单独的属性文件)。但是当我尝试绘图时,我收到一条错误消息。
边沿数据:
el[,"org"]=as.character(el[,"org"])
el[,"office"]=as.character(el[,"office"])
el=as.matrix(el)
g=graph.edgelist(el[,1:2])
尺寸属性:
V(g)$cont_amt=as.numeric(b$cont_amt[match(V(g)$name,b$org)])
V(g)$size=V(g)$cont_amt
V(g)$size <- ifelse(V(g)$size %in% el[,1], V(g)$size, NA)
尝试绘制:
plot(g, layout=m, edge.arrow.size=.2, vertex.label.font=1,
vertex.label.cex=.9, vertex.label.color="black")
我绘制时一直收到此错误消息:plot.window(...)中的错误:需要有限的'xlim'值
答案 0 :(得分:0)
该问题与this one中的评论有关。 考虑下面的最小工作示例:
library(igraph)
a <- 1:4
b <- letters[1:4]
edgelist <- cbind(a,b)
g <- graph_from_edgelist(edgelist)
在这里,我只是从边缘列表生成了一个随机图。
下一步是根据edgelist
第一栏中节点名称的出现情况来设置节点大小。该条件指出名称必须与第一列中的项目匹配。如果是,则将大小增加到16;如果否,则使用已经指定的大小。
V(g)$size <- 8
V(g)$size <- ifelse(test = V(g)$name %in% edgelist[,1], yes = 16, no = V(g)$size)