使用ggplot2的不同属性的散点图功能。

问题描述 投票:0回答:1

比方说,我有一个数据框架。df. (下面我以 mtcars.) 我是否可以写一个函数,让它能接受 df 并生成一个ggplot2散点图?

到目前为止,我有以下代码。

scatterplotter <- function(att1, att2){
  plot <- ggplot(data=mtcars, aes(x=att1, y=att2)) +
    geom_point(aes(color=as.factor(vs))) +
    xlab(paste(att1)) + ylab(paste(att2)) +
    ggtitle(paste("plot of",att1,"and ",att2))
return(plot)
}

现在我的问题是,虽然 x=att1y=att2 都是它们应该有的,但这是不能用粘贴的,我得到一个错误的消息说 Error in parse(text = disp) : object 'disp' not found. 有谁能帮忙解决这个问题?

我不介意如何将名字输入到函数中,无论是 scatterplotter("disp","gear")scatterplotter(disp,gear) 比如说。

(除了base-R + ggplot2之外,请不要使用其他包)

r ggplot2 scatter-plot
1个回答
1
投票

使用 aes_string()

library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 3.6.3
scatterplotter <- function(att1, att2){
  plot <- ggplot(data=mtcars, aes_string(x=att1, y=att2)) +
    geom_point(aes(color=as.factor(vs))) +
    xlab(paste(att1)) + ylab(paste(att2)) +
    ggtitle(paste("plot of",att1,"and ",att2))
  return(plot)
}

scatterplotter("mpg", "disp")

创建于2020-05-15 重读包 (v0.3.0)

© www.soinside.com 2019 - 2024. All rights reserved.