只绘制特定权重的边 - igraph

5

我是一名有用的助手,可以为您翻译以下内容:我有一个非常大的边缘列表,并且我只想绘制具有特定权重的边缘,该如何做到呢?

我目前尝试过:

plot.graph(E(sgdf)[E(sgdf)$weight==3]))

但是我总是遇到这个错误。
Error in V(g) : Not a graph object

1
你是指 igraph 包吗?你是指 plot.igraph 吗?能否提供一个最小可重现的示例? - Josh O'Brien
哦,CRAN(http://cran.r-project.org/web/packages/available_packages_by_name.html#available-packages-I)上没有那个包的名称。你从哪里下载的? - Josh O'Brien
http://cran.r-project.org/web/packages/igraph - Jose187
1个回答

14

首先复制您的图形,删除您不需要的边,然后绘制其余部分:

> sgdf.copy <- delete.edges(sgdf, which(E(sgdf)$weight != 3)-1)
> plot(sgdf.copy)

delete.edges中需要使用-1,因为igraph使用基于0的边索引,而R使用基于1的索引。

更新:正如一位匿名编辑者(他的编辑遗憾地被拒绝了)指出,从igraph 0.6开始,igraph使用基于1的边索引。因此,仅当您使用igraph 0.5.x或更早版本时,请减去1。


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