【问题标题】:ggplot() error while using it in a function in R [duplicate]在R中的函数中使用它时出现ggplot()错误[重复]
【发布时间】:2015-07-31 05:54:16
【问题描述】:

我需要关于我第一次使用的 ggplot() 的帮助。 我有一个函数定义如下:

myHist <- function(data, varName = "") {
gp <- ggplot(data, aes(data[, varName]))
gp <- gp + geom_histogram(alpha = 1, aes(fill=..count..))
gp <- gp + labs(title = paste("Histogram for ", varName, sep = " "))
gp <- gp + labs(x = varName, y = "N") 
gp <- gp + scale_fill_gradient("", low = "blue", high = "red")
gp

}

然后按如下方式使用它:

myHist(data = iris, varName = "Petal.Width")

这给出了以下错误:

"Error in eval(expr, envir, enclos) : object 'varName' not found"

谁能帮忙?在调试时,如果我初始化传递给函数内部的参数,则可以正常工作。但是函数本身不起作用

【问题讨论】:

    标签: r ggplot2 statistics


    【解决方案1】:

    您需要使用aes_string,因为您的变量是存储为字符值的函数的输入值。

    myHist <- function(data, varName = "") {
      gp <- ggplot(data=data, aes_string(varName))
      gp <- gp + geom_histogram(alpha = 1, aes(fill=..count..))
      gp <- gp + labs(title = paste("Histogram for", varName, sep = " "))
      gp <- gp + labs(x = varName, y = "N") 
      gp <- gp + scale_fill_gradient("", low = "blue", high = "red")
      gp}
    

    【讨论】:

    • 谢谢,它成功了...@Agenis
    • @agnenis:我是这个网站的新手,我点击了帖子左侧的勾号,这是你想要我做的吗?是的,它确实解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2018-04-16
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    相关资源
    最近更新 更多