如何在igraph绘制的无向图中添加弧权重标签?
在igraph中为图添加弧权重显示
你只需要在plot()函数里添加edge.label参数,指定为边的weight属性,就能让权重显示在边上。
修改后的完整代码:
library(igraph) actors <- data.frame(name=c("0","1","2", "3", "4", "5","6")) relations <- data.frame(from=c("0", "0", "1", "2", "3", "3","4","5","4"), to=c("1", "2", "3", "3", "5", "4","5","6","6"), weight=c(2,6,5,8,15,10,6,6,2)) g <- graph_from_data_frame(relations, directed=F, vertices=actors) # 绘制带权重标签的图,可按需调整样式 plot(g, edge.label = E(g)$weight, # 显示每条边的权重 edge.label.cex = 0.8, # 调整标签字号(可选) edge.label.color = "black" # 调整标签颜色(可选) )
关键说明:
E(g)$weight用来提取图对象g中所有边的权重属性,把它传给edge.label参数,igraph就会自动在对应边上标注权重数值- 如果觉得标签显示效果不好,还可以加这些参数调整:
edge.label.dist:设置标签与边的距离,避免重叠edge.label.font:切换标签字体edge.label.bg:给标签加背景色,提升可读性
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

