【问题标题】:ggraph maintain layout after edge removalggraph 去除边缘后保持布局
【发布时间】:2020-06-22 13:36:30
【问题描述】:

我想在删除边缘后保持图形布局(顶点位置)。一个例子:

library(igraph)
library(ggraph)

# create sample graph
g <- structure(list(from = c(1, 1, 2, 2, 3, 3), 
               to = c(2, 3, 4, 5, 6, 7)), 
          class = "data.frame", row.names = c(NA, 6L))

g <- graph_from_data_frame(g)

# plot with all edges 
ggraph(g, layout = 'tree') + 
  geom_edge_diagonal() +
  geom_node_point(size = 10) +
  theme_void()

现在删除几个边缘并重新绘制

g2 <- delete.edges(g, c(3,5))

ggraph(g2, layout = 'tree') + 
  geom_edge_diagonal() +
  geom_node_point(size = 10) +
  theme_void()

而这是所需的输出:

有没有一种简单的方法可以在去除边缘后保持顶点位置?

【问题讨论】:

    标签: r igraph ggraph


    【解决方案1】:

    写出我想通的问题后,您只需要使用igraph::layout_as_tree(或任何其他布局)保存第一个图表中的布局,它可用于第二个绘图:

    l <- igraph::layout_as_tree(g)
    
    ggraph(g2, layout = l) + 
      geom_edge_diagonal() +
      geom_node_point(size = 10) +
      theme_void()
    

    希望这可以为其他人节省一点时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2012-07-09
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多