使用 `plotmath` 显示下标和 `[ ]` 的组合
using `plotmath` to display combination of subscript and `[ ]`
我想创建一个图,在其中显示平均值和该平均值的置信区间。为此,我使用 plotmath
。这是我所做的 works-
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = parse(text = paste(
"list(~italic(mu)==", 3.22, ",", "CI[95~'%'] ", "(", 2.87, ",", 3.57, "))",
sep = ""
))
)
由 reprex package (v0.3.0)
于 2019-08-25 创建
但这不是我真正想要的。我想要显示这些结果的格式如下-
所以有两件事我似乎无法弄清楚如何使用 plotmath
:
95 %
应该改为 95%
使用[
代替(
我该怎么做?
P.S. 重要的是,由于这里难以解释的原因,对我来说 list
在 paste
函数中因为我想将这些表达式保存为数据框中的 character
类型的列。这就是为什么我没有接受下面提供的两个解决方案。
一个选项是bquote
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) +
geom_boxplot() +
labs(title = "Mean weight:",
subtitle = bquote(italic(mu)~"= 3.22,"~CI[95*'%']~"["*"2.87, 3.57"*"]"))
使用显示的公式:
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = ~italic(mu) == 3.22*', '*"CI"[95*'%']*group('[',2.87*','*3.57,']')
)
我假设您真正关心的是输出看起来正确,而不是使用 plotmath。您可以使用我目前正在开发的 ggtext 包,它使您可以在 ggplot2 中使用简单的 markdown/HTML。我通常发现以这种方式创建基本数学表达式比使用 plotmath 争论要容易得多。而且您根本不必使用 R 表达式,输入始终是一个简单的字符串。
# this requires the current development versions of ggplot2 and ggtext
# remotes::install_github("tidyverse/ggplot2")
# remotes::install_github("clauswilke/ggtext")
library(ggplot2)
library(ggtext)
ggplot(mtcars, aes(as.factor(cyl), wt)) +
geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = "*μ* = 3.22, CI<sub>95%</sub>[2.87, 3.57]"
) +
theme(plot.subtitle = element_markdown())
由 reprex package (v0.3.0)
创建于 2019-12-02
此解决方案保留列表和粘贴。
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = parse(text = paste(
"list(~italic(mu)==", 3.22, ",", "CI[95*'%'] ", "*'['*", 2.87, ",", 3.57, "*']')",
sep = ""
))
)
我想创建一个图,在其中显示平均值和该平均值的置信区间。为此,我使用 plotmath
。这是我所做的 works-
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = parse(text = paste(
"list(~italic(mu)==", 3.22, ",", "CI[95~'%'] ", "(", 2.87, ",", 3.57, "))",
sep = ""
))
)
由 reprex package (v0.3.0)
于 2019-08-25 创建但这不是我真正想要的。我想要显示这些结果的格式如下-
所以有两件事我似乎无法弄清楚如何使用 plotmath
:
95 %
应该改为95%
使用
[
代替(
我该怎么做?
P.S. 重要的是,由于这里难以解释的原因,对我来说 list
在 paste
函数中因为我想将这些表达式保存为数据框中的 character
类型的列。这就是为什么我没有接受下面提供的两个解决方案。
一个选项是bquote
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) +
geom_boxplot() +
labs(title = "Mean weight:",
subtitle = bquote(italic(mu)~"= 3.22,"~CI[95*'%']~"["*"2.87, 3.57"*"]"))
使用显示的公式:
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = ~italic(mu) == 3.22*', '*"CI"[95*'%']*group('[',2.87*','*3.57,']')
)
我假设您真正关心的是输出看起来正确,而不是使用 plotmath。您可以使用我目前正在开发的 ggtext 包,它使您可以在 ggplot2 中使用简单的 markdown/HTML。我通常发现以这种方式创建基本数学表达式比使用 plotmath 争论要容易得多。而且您根本不必使用 R 表达式,输入始终是一个简单的字符串。
# this requires the current development versions of ggplot2 and ggtext
# remotes::install_github("tidyverse/ggplot2")
# remotes::install_github("clauswilke/ggtext")
library(ggplot2)
library(ggtext)
ggplot(mtcars, aes(as.factor(cyl), wt)) +
geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = "*μ* = 3.22, CI<sub>95%</sub>[2.87, 3.57]"
) +
theme(plot.subtitle = element_markdown())
由 reprex package (v0.3.0)
创建于 2019-12-02此解决方案保留列表和粘贴。
library(ggplot2)
ggplot(mtcars, aes(as.factor(cyl), wt)) + geom_boxplot() +
labs(
title = "Mean weight:",
subtitle = parse(text = paste(
"list(~italic(mu)==", 3.22, ",", "CI[95*'%'] ", "*'['*", 2.87, ",", 3.57, "*']')",
sep = ""
))
)