5

我有一个非常大的边缘列表,我只想绘制具有特定权重的边缘,我该怎么做?

到目前为止我已经尝试过

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

但我总是收到这个错误

Error in V(g) : Not a graph object
4

1 回答 1

14

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

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

之所以-1需要,是delete.edges因为 igraph 使用从零开始的边缘索引,而 R 使用从 1 开始的索引。

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

于 2012-06-05T08:36:02.060 回答