在绘图标题中使用数据框变量名称
Use dataframe variable names in plot titles
我有一个包含多个变量的数据框,我希望对其进行标记,然后在多个 ggplot 中使用。我使用带有以下代码的 labeller
包应用了标签。
library(tidyverse)
library(labeller)
library(ggpubr)
example.df <- data.frame(
origin = sample(c("hum_1", "mou_1"), 100, replace = TRUE),
v1 = rnorm(100, 100, 5),
v2 = rnorm(100, 10,5),
v3 = rnorm (100, 25, 5))
example.df <- example.df %>% set_variable_labels(origin = "original sample", v1 = "effect of Rx", v2 = "response", v3 = "weight (kg)")
这会使标签显示在数据框中。但是,当我使用 ggpubr
中的 ggqqplot
绘制这些变量时,我在结果图中看不到标签。
vars <- dput(colnames(select_if(example.df, is.numeric)))
lapply(vars, function(item) {
ggqqplot(example.df, x=item, combine = FALSE, facet.by = "origin")+
ggtitle(item)
}
)
我想要原样,rx的效果和体重(公斤) 出现而不是 v1、v2 和 v3。任何帮助深表感谢。谢谢。
您可以给 vars
命名,然后使用 purrr
包中的 map2()
或 imap()
函数循环遍历它们。要包含 superscripts/subscripts/math 符号,请将 expression()
与 parse(text = ...)
一起使用(另请参阅这些 , )。
names(vars) <- c(expression('effect of Rx'^{1}),
"response",
expression(weight/individual %.% kg[2])
)
vars
#> "effect of Rx"^{\n 1\n} response
#> "v1" "v2"
#> weight/individual %.% kg[2]
#> "v3"
### from purrr package
map2(vars, names(vars), ~ ggqqplot(example.df, x = .x, combine = FALSE, facet.by = "origin") +
ggtitle(parse(text = .y)))
# or `imap(x, ...)` which is short hand for map2(x, names(x), ...)
imap(vars, ~ ggqqplot(example.df, x = .x, combine = FALSE, facet.by = "origin") +
ggtitle(parse(text = .y)))
#> $`"effect of Rx"^{\n 1\n}`
#>
#> $response
#>
#> $`weight/individual %.% kg[2]`
由 reprex package (v0.2.1.9000)
创建于 2019-03-11
我有一个包含多个变量的数据框,我希望对其进行标记,然后在多个 ggplot 中使用。我使用带有以下代码的 labeller
包应用了标签。
library(tidyverse)
library(labeller)
library(ggpubr)
example.df <- data.frame(
origin = sample(c("hum_1", "mou_1"), 100, replace = TRUE),
v1 = rnorm(100, 100, 5),
v2 = rnorm(100, 10,5),
v3 = rnorm (100, 25, 5))
example.df <- example.df %>% set_variable_labels(origin = "original sample", v1 = "effect of Rx", v2 = "response", v3 = "weight (kg)")
这会使标签显示在数据框中。但是,当我使用 ggpubr
中的 ggqqplot
绘制这些变量时,我在结果图中看不到标签。
vars <- dput(colnames(select_if(example.df, is.numeric)))
lapply(vars, function(item) {
ggqqplot(example.df, x=item, combine = FALSE, facet.by = "origin")+
ggtitle(item)
}
)
我想要原样,rx的效果和体重(公斤) 出现而不是 v1、v2 和 v3。任何帮助深表感谢。谢谢。
您可以给 vars
命名,然后使用 purrr
包中的 map2()
或 imap()
函数循环遍历它们。要包含 superscripts/subscripts/math 符号,请将 expression()
与 parse(text = ...)
一起使用(另请参阅这些
names(vars) <- c(expression('effect of Rx'^{1}),
"response",
expression(weight/individual %.% kg[2])
)
vars
#> "effect of Rx"^{\n 1\n} response
#> "v1" "v2"
#> weight/individual %.% kg[2]
#> "v3"
### from purrr package
map2(vars, names(vars), ~ ggqqplot(example.df, x = .x, combine = FALSE, facet.by = "origin") +
ggtitle(parse(text = .y)))
# or `imap(x, ...)` which is short hand for map2(x, names(x), ...)
imap(vars, ~ ggqqplot(example.df, x = .x, combine = FALSE, facet.by = "origin") +
ggtitle(parse(text = .y)))
#> $`"effect of Rx"^{\n 1\n}`
#>
#> $response
#>
#> $`weight/individual %.% kg[2]`
由 reprex package (v0.2.1.9000)
创建于 2019-03-11