从ggraph网络图中检索节点坐标

时间:2017-09-25 15:26:01

标签: r igraph ggraph

假设我制作了这张图表:

library(ggraph)
library(igraph)

my_chart <- graph_from_data_frame(highschool)
set.seed(2017)

ggraph(my_chart, layout = "nicely") + geom_edge_link() + geom_node_point()

enter image description here

如何从此图表中检索节点的x和y坐标?

2 个答案:

答案 0 :(得分:1)

使用ggplot_build

library(ggraph)
library(igraph)

my_chart <- graph_from_data_frame(highschool)
set.seed(2017)

p <- ggraph(my_chart, layout = "nicely") + geom_edge_link() + geom_node_point()

pg <- ggplot_build(p)

lines are in pg[[1]][[1]]

ggplot(data= pg[[1]][[1]])+
  geom_line(aes(x=x,y=y, group=group), size = 0.1)

enter image description here

while points are in pg[[1]][[2]]

ggplot(data= pg[[1]][[1]])+
  geom_line(aes(x=x,y=y, group=group), size = 0.1)+
  geom_point(data= pg[[1]][[2]], aes(x=x,y=y, group=group), color = "red")

enter image description here

答案 1 :(得分:0)

您可以使用igraph包中的一些layout_函数。它们返回一个带顶点坐标的矩阵。