0

假设我有一个igraph如下图:

library(ggraph)
library(igraph)

vertices <- data.frame(name = LETTERS[1:6],
                       time = c(0, 9, 9, 10, 10, 10))
edges <- data.frame(from = c("A", "B", "B", "A", "C", "C"),
                    to =   c("B", "D", "E", "C", "E", "F"))
graph <- graph_from_data_frame(edges, 
                               directed = TRUE, 
                               vertices = vertices)

出于目前的目的,该图将始终是一棵树或一个 DAG,我想用ggraph树状布局来绘制该图。我的问题是:如何使用timey 值的 vertex 属性绘制此图?

我可以设置正确定位节点aes(y = time)geom_node_point但边缘不跟随:

ggraph(graph, layout = "tree") + 
  geom_node_point(aes(y = time)) +
  geom_edge_link() +
  theme_bw()

reprex 包(v0.3.0)于 2019 年 11 月 17 日创建

yoryend美学设置为timeingeom_edge_link会引发错误。

我是新手ggraph,所以我被困在如何解决这个问题上。

4

1 回答 1

1

它并不漂亮,但您可以通过创建自己的布局来实现。

LO = layout_as_tree(graph)
LO[, 2] = V(graph)$time

ggraph(graph, layout = LO) + 
  geom_node_point() +
  geom_edge_link() +
  theme_bw()

在布局中以时间为 y 轴的图形

于 2019-11-17T16:23:39.837 回答