在绘图标题中使用数据框变量名称 [英] Use dataframe variable names in plot titles

查看:19
本文介绍了在绘图标题中使用数据框变量名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have a dataframe with several variables that I wish to label and then use in several ggplots. I have applied labels using the labeller package with the following code.

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)")

This gets the labels to show up in the dataframe. However, when I use ggqqplot from ggpubr to plot these variables I don't see the labels in the resultant plots.

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)
   }
)

I would like to have original sample, effect of rx and weight (kg) show up instead of v1, v2 and v3. Any help is much appreciated. Thanks.

解决方案

You can give the names to vars then use either map2() or imap() functions from the purrr package to cycle through them. To include superscripts/subscripts/math notation, use expression() together with parse(text = ...) (see also these example1, example2).

names(vars) <- c(expression('effect of Rx'^{1}), 
                 "response", 
                 expression(weight/individual %.% kg[2])
                 )
vars
#>  "effect of Rx"^{
    1
}                    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"^{
    1
}`

#> 
#> $response

#> 
#> $`weight/individual %.% kg[2]`

Created on 2019-03-11 by the reprex package (v0.2.1.9000)

这篇关于在绘图标题中使用数据框变量名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆