我有一个非常大的边缘列表,我只想绘制具有特定权重的边缘,我该怎么做?
到目前为止我已经尝试过
plot.graph(E(sgdf)[E(sgdf)$weight==3]))
但我总是收到这个错误
Error in V(g) : Not a graph object
首先复制您的图表,删除不需要的边,然后绘制其余部分:
> 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。