R 在lappy过程中如何将ggplot x-label设置为变量名?
我正在绘制一个y变量和多个x变量的曲线图。 我有一个使用lappy的工作解决方案。但是,我无法将x变量的名称写入每个绘图的x标签。以下是我所拥有的一个简化示例: 目标是针对每个x变量绘制y变量,生成三个图,并添加每个x变量的名称作为x轴标签 使用一个y变量和三个x变量生成数据帧:R 在lappy过程中如何将ggplot x-label设置为变量名?,r,ggplot2,lapply,tidyeval,nse,R,Ggplot2,Lapply,Tidyeval,Nse,我正在绘制一个y变量和多个x变量的曲线图。 我有一个使用lappy的工作解决方案。但是,我无法将x变量的名称写入每个绘图的x标签。以下是我所拥有的一个简化示例: 目标是针对每个x变量绘制y变量,生成三个图,并添加每个x变量的名称作为x轴标签 使用一个y变量和三个x变量生成数据帧: 这将产生三个图,每个图的x标签都是“variable.x”,而不是所需的变量名称x1、x2和x3。我稍微修改一下生成图,并使用(>v3.0.0)版本,该版本支持整洁的计算 说明: 在函数内部,我们使用rlang::s
这将产生三个图,每个图的x标签都是“variable.x”,而不是所需的变量名称x1、x2和x3。我稍微修改一下
生成图
,并使用(>v3.0.0
)版本,该版本支持整洁的计算
说明:
- 在函数内部,我们使用
rlang::sym
将字符串转换为符号,然后在aes
内部使用代码>(砰砰)
- 要调用该函数,请使用
purrr::map
循环查看df
列名
请参阅更多:
库(tidyverse)
dflappy
无法访问您传递的列表的名称。看这里:嘿,首先谢谢你的帮助!我想我理解rlang::sym和!!在aes中。不幸的是,我无法通过复制粘贴您提供的代码来复制下图中的图形。我得到以下错误:“error in!x.variable:invalid argument type”您需要开发版本的ggplot2
。请看我答案中的那行代码。安装前确保重新启动R
,您是对的。我没有安装ggplot2的开发版本。现在很有魅力。。谢谢
df <- data.frame(y.variable=c(11:20), x1=c(21:30),x2=c(1:10),x3=c(31:40))
get_name <- function(v1) {deparse(substitute(v1))}
generate_plot <- function(x.variable) {ggplot(data = df, aes(x.variable, y.variable )) +geom_point() + xlab(get_name(variable.name))}
lapply(df, generate_plot)