如何在 R 中使用带有 ggraph 的下标?
How to use subscript with ggraph in R?
很简单的问题,似乎要花很多时间才能解决。使用 ggraph
创建树状图时,我试图在节点标签中包含一个下标。但是,我似乎无法使用 expression
让它工作。例如,如果我创建一些数据和如下所示的树状图:
library(tidygraph)
library(ggraph)
library(dplyr)
# create some data
nodes <- tibble(
var = c("x4 ≤ 100", "x1 ≤ 50", "µ", "µ", "µ")
)
edges <- tibble(
from = c(1,2,2,1),
to = c(2,3,4,5)
)
# turn in tidygraph object
tg <- tbl_graph(nodes = nodes, edges = edges)
# plot using ggraph
ggraph(tg, "dendrogram") +
geom_edge_elbow() +
geom_node_label(aes(label = var)) +
theme_graph() +
theme(legend.position = "none")
在终端节点中,我试图为 µ 值添加一个下标。类似于:µ1、µ2 等。但我似乎无法让它工作。
关于如何解决这个问题有什么建议吗?
这可能不是最优雅的方式,但您可以在geom_node_label
中使用parse = TRUE
;由于某种原因,它保留了 expression()
,但您可以在之后摆脱它:
library(tidygraph)
library(ggraph)
library(dplyr)
# create some data
nodes <- tibble(
var = c('"x4 ≤ 100"', '"x1 ≤ 50"', expression("µ"[1]), expression("µ"[2]), expression("µ"[3]))
)
edges <- tibble(
from = c(1,2,2,1),
to = c(2,3,4,5)
)
# turn in tidygraph object
tg <- tbl_graph(nodes = nodes, edges = edges)
# plot using ggraph
ggraph(tg, "dendrogram") +
geom_edge_elbow() +
geom_node_label(aes(label = gsub("(expression\()(.*)(\))", "\2", var)), parse=T) +
theme_graph() +
theme(legend.position = "none")
由 reprex package (v2.0.1)
于 2022-04-05 创建
很简单的问题,似乎要花很多时间才能解决。使用 ggraph
创建树状图时,我试图在节点标签中包含一个下标。但是,我似乎无法使用 expression
让它工作。例如,如果我创建一些数据和如下所示的树状图:
library(tidygraph)
library(ggraph)
library(dplyr)
# create some data
nodes <- tibble(
var = c("x4 ≤ 100", "x1 ≤ 50", "µ", "µ", "µ")
)
edges <- tibble(
from = c(1,2,2,1),
to = c(2,3,4,5)
)
# turn in tidygraph object
tg <- tbl_graph(nodes = nodes, edges = edges)
# plot using ggraph
ggraph(tg, "dendrogram") +
geom_edge_elbow() +
geom_node_label(aes(label = var)) +
theme_graph() +
theme(legend.position = "none")
在终端节点中,我试图为 µ 值添加一个下标。类似于:µ1、µ2 等。但我似乎无法让它工作。
关于如何解决这个问题有什么建议吗?
这可能不是最优雅的方式,但您可以在geom_node_label
中使用parse = TRUE
;由于某种原因,它保留了 expression()
,但您可以在之后摆脱它:
library(tidygraph)
library(ggraph)
library(dplyr)
# create some data
nodes <- tibble(
var = c('"x4 ≤ 100"', '"x1 ≤ 50"', expression("µ"[1]), expression("µ"[2]), expression("µ"[3]))
)
edges <- tibble(
from = c(1,2,2,1),
to = c(2,3,4,5)
)
# turn in tidygraph object
tg <- tbl_graph(nodes = nodes, edges = edges)
# plot using ggraph
ggraph(tg, "dendrogram") +
geom_edge_elbow() +
geom_node_label(aes(label = gsub("(expression\()(.*)(\))", "\2", var)), parse=T) +
theme_graph() +
theme(legend.position = "none")
由 reprex package (v2.0.1)
于 2022-04-05 创建