这是一个MWE:
library(ggplot2)
library(ggridges)
ggplot(iris, aes(x=Sepal.Length, y=Species, fill=..x..)) +
geom_density_ridges_gradient()
我的疑问是:我们可以不说fill = Sepal.Length
吗?
我知道它..x..
指的是一个计算变量x
,并且调用geom_density_ridges_gradient
可能不会在 ggplot 术语中看到该变量,但是在我们可以参考 ggplot 咒语时Sepal.Length
,可以吗?
有人可以澄清为什么我们需要说..x..
而不是Sepal.Length
在这种情况下吗?我不完全确定这里的推理。
更准确地说,为什么这不起作用:
ggplot(iris, aes(x=Sepal.Length, y=Species,
fill=Sepal.Length)) + geom_density_ridges_gradient()
<------------我想从这里开始改写我的查询------------>
如果我做 :
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges_gradient(fill = Sepal.Length)
geom_density_ridges_gradient 将无法找到变量 Sepal.Length 并给出错误。
所以,正确的咒语应该是:
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges_gradient(fill = ..x..)
geom_density_ridges_gradient 应该能够找到计算变量 ..x.. ,但它不起作用。有人可以解释这是为什么吗?
另一个查询:
如果我做 :
ggplot(iris, aes(x = Sepal.Length, y = Species,fill = Sepal.Length)) +
geom_density_ridges_gradient()
为什么它没有给我一条错误消息说 Sepal.Length not found,
它只是忽略了 fill 参数并绘制了输出,这是为什么呢?
最终似乎起作用的是:
ggplot(iris, aes(x=Sepal.Length, y=Species, fill=..x..)) +
geom_density_ridges_gradient()
但我不确定为什么它会起作用。
基本上,我对对应于填充的参数应该放置在哪里感到困惑。