Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在lappy过程中如何将ggplot x-label设置为变量名?_R_Ggplot2_Lapply_Tidyeval_Nse - Fatal编程技术网

R 在lappy过程中如何将ggplot x-label设置为变量名?

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

我正在绘制一个y变量和多个x变量的曲线图。 我有一个使用lappy的工作解决方案。但是,我无法将x变量的名称写入每个绘图的x标签。以下是我所拥有的一个简化示例:

目标是针对每个x变量绘制y变量,生成三个图,并添加每个x变量的名称作为x轴标签

使用一个y变量和三个x变量生成数据帧:


这将产生三个图,每个图的x标签都是“variable.x”,而不是所需的变量名称x1、x2和x3。

我稍微修改一下
生成图
,并使用(
>v3.0.0
)版本,该版本支持
整洁的计算

说明:

  • 在函数内部,我们使用
    rlang::sym
    将字符串转换为符号,然后
    aes
    内部使用
    (砰砰)

  • 要调用该函数,请使用
    purrr::map
    循环查看
    df
    列名

请参阅更多:

库(tidyverse)

df
lappy
无法访问您传递的列表的名称。看这里:嘿,首先谢谢你的帮助!我想我理解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)