R:来自ggplot2的qplot中的错误:参数" env"缺少,没有默认值

时间:2014-07-11 23:51:59

标签: r ggplot2

我正在使用ggplot2中的qplot来绘制R中不同物种分散的种子的距离。当我使用geom='density'时,它的效果很好!但我真正想要的是频率/面积图,我得到一个错误,我不知道如何解决。

这有效:

qplot(Dist,data=testx,geom="density",fill=Animal,log=c('x','y'),alpha=I(0.5))

这不起作用:

qplot(Dist,data=testx,geom="area",fill=Animal,log=c('x','y'))

Error in exists(name, envir = env, mode = mode) : 
  argument "env" is missing, with no default

帮助?谢谢!

2 个答案:

答案 0 :(得分:8)

出现该错误的原因(我同意,该消息非常模糊)是您尝试使用geom_areaqplot(geom = "area")+ geom_area()大致相同)。虽然geom_density只需要x(在您的情况下为x = Dist),但这对geom_area来说还不够,因为它还使用ymax(对于帮助页面,请参阅this,链接到this)。

以下是密度和频率图的示例,您可以根据数据进行调整:

ggplot(data=diamonds, aes(x=carat, fill=clarity)) + geom_density(alpha=0.5)
ggplot(data=diamonds, aes(x=carat, colour=clarity)) + geom_freqpoly()

您的代码示例不是reproducible,因此我无法验证以下行,但

ggplot(data=testx, aes(x=Dist, colour=Animal)) + geom_freqpoly() + 
  scale_x_log10() + scale_y_log10()

可能就是您所需要的。

答案 1 :(得分:8)

关于此错误消息,可能有助于指出这是您为直方图使用空数据集时收到的错误消息:

df <- data.frame(testx = rnorm(0))
p <- ggplot(df, aes(x=testx)) +
  geom_histogram()
plot(p)

Error in exists(name, envir = env, mode = mode) : 
  argument "env" is missing, with no default

不幸的是,在这种情况下,错误信息根本不是很有帮助。当我第一次遇到这个问题时,我花了一些时间才弄明白我只是偶然得到了一个空的数据框。 OP可能有一个不同的问题,但总是很高兴知道这个错误与这个愚蠢的错误有关。