R完全互连的加权图

时间:2018-07-05 18:27:44

标签: r igraph weighted-graph

我一直在尝试使用R中的igraph包来绘制一个网络图,其中每对节点之间的加权关系介于-4和4之间(-4表示“尽可能远”)。最初,我绘制了数据,可以使用权重来标注链接的粗细,但不会影响布局。修剪“最差”边缘会有所帮助,但是会导致弱链接的节点掉到图上,请参见本示例中的#64和#119,并且似乎不会很好地将“低”值节点分开。我最终想要的是将节点绘制成尽可能靠近“相似”节点,并且远离不同节点。 (编辑:将数据文件中的Weight更改为weight会有所帮助,将表述问题更清楚地提出来) enter image description here

我的代码是,而我的示例日期文件在这里:https://www.dropbox.com/s/kuqo3a8twa149gd/paris_rouen.zip?dl=0

datefile_base <- "paris_rouen_utrecht"
nodes <- read.csv(paste(datefile_base, "-nodes.csv", sep=""), header=T, as.is=T)

links <- read.csv(paste(datefile_base, "-edge.csv", sep=""), header=T, as.is=T)
library(igraph)
require(stats)

net <- graph_from_data_frame(d=links, vertices=nodes, directed=F) 
simplify(net, edge.attr.comb=list(weight="sum","ignore"))
translucent <- rainbow(5, alpha=.5)
V(net)$color <- translucent[V(net)$UseNumber]

plot.new
cut.off <- quantile(links$Weight)["75%"] 
net.sp <- delete_edges(net, E(net)[Weight<cut.off])
layout_with_fr(net.sp)
plot(net.sp) 
legend("topleft", c("Paris","Rouen", "Utrecht", "Unknown"), pch=21,
       col="#777777", pt.bg=translucent, pt.cex=2, cex=.8, bty="n", ncol=1)

0 个答案:

没有答案