R:在绘制igraph时选择性地显示节点
如何绘制选定的igraph节点 我有一个现有的图表,但它太复杂了。我希望能够“放大”节点的子集 我可以删除边的子集,但我不知道如何“关闭”孤立节点 使用网络软件包时,R:在绘制igraph时选择性地显示节点,r,graph,igraph,R,Graph,Igraph,如何绘制选定的igraph节点 我有一个现有的图表,但它太复杂了。我希望能够“放大”节点的子集 我可以删除边的子集,但我不知道如何“关闭”孤立节点 使用网络软件包时,displayisolates=FALSE参数执行此操作;它不显示这些孤立的节点 布局算法还应忽略“关闭”边 例如: g1 <- graph( c( 0,1, 1,2, 2,2, 2,3 ) ) g2 <- delete.edges(g1, E(g1, c(0,1))) plot(g2) g1嘿,看起来你已经明白了,但
displayisolates=FALSE
参数执行此操作;它不显示这些孤立的节点
布局算法还应忽略“关闭”边
例如:
g1 <- graph( c( 0,1, 1,2, 2,2, 2,3 ) )
g2 <- delete.edges(g1, E(g1, c(0,1)))
plot(g2)
g1嘿,看起来你已经明白了,但是在探索这个问题时(我自己通常使用网络软件包,但在某些事情上也尝试使用igraph),我想出了一个应该自动完成的函数,它反映了displayisolates=F的功能
delete.isolates <- function(graph, mode = 'all') {
isolates <- which(degree(graph, mode = mode) == 0) - 1
delete.vertices(graph, isolates)
}
delete.delete我知道用户不应该提交新答案来评论其他答案,但我的编辑被拒绝了,而且我没有足够高的声誉留下评论
我只是想指出,在Wine上面的回答中,从igraph 0.6开始,deletes.isolates函数中的“-1”索引校正是不必要的。另见塔马斯的评论:
iso您能提供一些数据或图形示例说明您正在尝试做什么吗?噢,见鬼,我不知道这里的礼仪,但我回答了我自己的问题。您只需删除顶点。在上面的例子中,你将g3请为你的答案添加上下文。
g2 <- delete.isolates(g1, mode = 'in')
plot(g2)
iso <- V(g1)[degree(g1)==0]
g2 <- delete.vertices(g1, iso)