R igraph 二分图,为什么我的权重没有显示?

3

我正在使用R和igraph软件包,根据关联矩阵创建一个二分图,但是我的权重没有显示出来?下面提供了我尝试做的示例。我已将weighted设置为TRUE,并期望边缘具有不同权重,但线条都是相同粗细的。您有什么建议吗?

# Load packages
library(igraph)

# Create data
pNames <- paste("P", 1:4, sep="")
cNames <- paste("c", 1:3, sep="")
rData <- matrix(sample(4,12,replace=TRUE)-1,nrow=4,dimnames=list(pNames,cNames))
print(rData)

# Graph from matrix
b <- graph_from_incidence_matrix(rData,weighted=TRUE)

# Plot with layout
plot(b, layout=layout.bipartite,vertex.color=c("green","cyan")[V(b)$type+1],edge.width = b$weights)

2
你只需要在绘图调用中使用 edge.width = E(b)$weights 调用权重即可。当调用属性时,igraph 要求你指定边缘 E(graph) 或顶点 V(graph) - paqmo
1个回答

3
您可以使用以下方式查找边缘的属性:
get.edge.attribute(b)
#$weight
#[1] 2 1 1 3 2 1 2

正如@paqmo所提到的,现在您知道了属性的名称,可以使用它来设置边缘宽度/标签:
plot(b, layout=layout.bipartite,vertex.color=c("green","cyan")[V(b)$type+1],
     edge.width = E(b)$weight, edge.label=E(b)$weight, edge.label.cex=2)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接