使用 3 层(三方)igraph 可视化 graph/network

Visualizing graph/network with 3 layeres (tripartite) igraph

igraph中已经有关于三方图的话题,但是他们使用的方式layout.sugiyama对我来说并不好。我想为节点强加一个命令。实际上,我想可视化三方图的边交叉。假设我有一个三方图,每列有 3 个节点。我将只有一条边从每个节点出来。例如,6 条边可以是(A->E、B->F、C->D、D-​​>H、E->G、F->I)。类似的东西:

      A         D         G         
      B         E         H
      C         F         I

如何使用 igraph 执行此操作?正如我所说,我想看到交叉边缘。谢谢。

例如,您可以这样做:

library(igraph)
coords <- matrix(c(rep(1:3, each = 3), rep(3:1, 3)), 
                 ncol = 2, 
                 dimnames = list(LETTERS[1:9], c("x", "y")))
g <- graph.formula(A--E, B--F, C--D, D-- H, E--G, F--I)
plot(g, layout = coords[V(g)$name, ])