我正在使用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
帮助?谢谢!
答案 0 :(得分:8)
出现该错误的原因(我同意,该消息非常模糊)是您尝试使用geom_area
(qplot(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可能有一个不同的问题,但总是很高兴知道这个错误与这个愚蠢的错误有关。