根据边缘属性在igraph R图中更改边缘厚度

18

我想将我的图的边缘宽度更改为与边缘介数得分相对应。

 net <- read.csv("D:/SNA/R/Net.csv")
 att <- read.csv("D:/SNA/R/Att.csv")
 g <- graph.data.frame(net, vertices=att, directed=TRUE)
 pdf("Network.pdf", pointsize=8)
 plot(g, vertex.label=NA, vertex.size=3, edge.width=edge.betweenness(g))
 dev.off()

我还尝试将边介数分数创建为边权重,并将其分配给plot函数中的edge.width参数,如下所示:

plot(g, vertex.label=NA, vertex.size=3, edge.width=E(g)$width

你能提供一些样本数据让我重新创建你的图表吗? - Christie Haskell Marsh
你的例子应该是可以工作的。也许你没有看到区别,因为边介数分数非常接近。实际上,我们甚至不知道你看到了什么问题是什么...... - Gabor Csardi
我得到的错误是:在i.parse.plot.params(graph, list(...))中出现错误: 未知的边参数:weight - P Mcquiy
感谢您的评论,我已经成功让它工作了。 - P Mcquiy
为什么不为Net.csv和Att.csv创建简单的副本,以便整个R社区都可以更好地利用这个问题。例如,看看set.seed(1); data.frame(replicate(4, rnorm(100))) - Erdogan CEVHER
1个回答

15

你的例子应该可以工作。或者,你可以这样写:

E(g)$weight <- edge.betweenness(g)

在绘图函数之前。


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