如何使用 R 中的 tidygraph 对象绘制单个节点?
How to plot a single node using tidygraph objects in R?
我想知道是否可以用单个节点绘制 tidygraph 对象?例如,如果我创建一些数据和一个具有 2 个节点的 tidygraph 对象,它将如下所示:
library(tidygraph)
library(graph)
nodes <- data.frame(name = c('var1', 'var2'), value = c(3, 10))
edges <- data.frame(from = c(1),
to = c(2))
tg <- tbl_graph(nodes = nodes, edges = edges)
ggraph(tg, "partition") +
geom_node_tile(aes(fill = name)) +
scale_y_reverse() +
theme_void()
但是,我想知道是否可以绘制一个仅包含 1 个节点的 tidygraph 对象。例如,如果我的数据没有与之关联的边缘数据,如下所示:
nodes <- data.frame(name = c('var1'), value = c(3))
tg <- tbl_graph(nodes = nodes)
当我尝试绘制上面的图时,出现错误:
Error in layout[, 1] : incorrect number of dimensions
这是有道理的,因为没有边缘数据。我天真地尝试将边缘数据设置为:
edges <- data.frame(from = c(1),
to = c(1))
但这也会返回一个错误。
我想知道是否有办法实现我想要做的事情?
您可以创建一个 two-row 节点数据框,其中同一行重复两次,边缘数据框也是如此。创建绘图对象并删除其数据组件的第二行。
library(tidygraph)
#> Attaching package: 'tidygraph'
#> The following object is masked from 'package:stats':
#>
#> filter
library(ggraph)
#> Loading required package: ggplot2
nodes <- data.frame(name = c('var1'), value = c(3, 3))
edges <- data.frame(from = c(1, 1),
to = c(1, 1))
tg <- tbl_graph(nodes = nodes, edges = edges)
p <- ggraph(tg, "partition") +
geom_node_tile(aes(fill = name)) +
scale_y_reverse() +
theme_void()
#Remove second node
p$data <- p$data[-2, ]
p
由 reprex package (v2.0.1)
创建于 2022-03-28
我想知道是否可以用单个节点绘制 tidygraph 对象?例如,如果我创建一些数据和一个具有 2 个节点的 tidygraph 对象,它将如下所示:
library(tidygraph)
library(graph)
nodes <- data.frame(name = c('var1', 'var2'), value = c(3, 10))
edges <- data.frame(from = c(1),
to = c(2))
tg <- tbl_graph(nodes = nodes, edges = edges)
ggraph(tg, "partition") +
geom_node_tile(aes(fill = name)) +
scale_y_reverse() +
theme_void()
但是,我想知道是否可以绘制一个仅包含 1 个节点的 tidygraph 对象。例如,如果我的数据没有与之关联的边缘数据,如下所示:
nodes <- data.frame(name = c('var1'), value = c(3))
tg <- tbl_graph(nodes = nodes)
当我尝试绘制上面的图时,出现错误:
Error in layout[, 1] : incorrect number of dimensions
这是有道理的,因为没有边缘数据。我天真地尝试将边缘数据设置为:
edges <- data.frame(from = c(1),
to = c(1))
但这也会返回一个错误。
我想知道是否有办法实现我想要做的事情?
您可以创建一个 two-row 节点数据框,其中同一行重复两次,边缘数据框也是如此。创建绘图对象并删除其数据组件的第二行。
library(tidygraph)
#> Attaching package: 'tidygraph'
#> The following object is masked from 'package:stats':
#>
#> filter
library(ggraph)
#> Loading required package: ggplot2
nodes <- data.frame(name = c('var1'), value = c(3, 3))
edges <- data.frame(from = c(1, 1),
to = c(1, 1))
tg <- tbl_graph(nodes = nodes, edges = edges)
p <- ggraph(tg, "partition") +
geom_node_tile(aes(fill = name)) +
scale_y_reverse() +
theme_void()
#Remove second node
p$data <- p$data[-2, ]
p
由 reprex package (v2.0.1)
创建于 2022-03-28