从 ggraph 网络图中检索节点坐标
Retrieving node coordinates from ggraph network chart
假设我制作了这张图表:
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()
如何从此图表中检索节点的 x 和 y 坐标?
使用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)
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")
您可以使用 igraph 包中的一些 layout_
函数。他们 return 一个带有顶点坐标的矩阵。
假设我制作了这张图表:
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()
如何从此图表中检索节点的 x 和 y 坐标?
使用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)
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")
您可以使用 igraph 包中的一些 layout_
函数。他们 return 一个带有顶点坐标的矩阵。