我正在针对多个 x 变量绘制一个 y 变量的图。我有一个使用 lapply 的工作解决方案。但是,我无法将 x 变量的名称写为每个图的 x 标签。这是我所拥有的简化示例:
目标是针对每个 x 变量绘制 y 变量,生成三个图,并将每个 x 变量的名称添加为 x 轴标签。
生成一个包含一个 y 变量和三个 x 变量的数据框:
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))}
生成 y 对 x 变量的绘图的函数:
generate_plot <- function(x.variable) {ggplot(data = df, aes(x.variable, y.variable )) +geom_point() + xlab(get_name(variable.name))}
调用 lapply 以在 df 的每一列上执行 generate_plot:
lapply(df, generate_plot)
这会产生三个图,每个图都有“variable.x”作为其 x 标签,而不是所需的变量名称 x1、x2 和 x3。