这是一个MWE:
new Data[] {new Data("E30", "1985", ratingE30)};
我的查询是:我们不能说library(ggplot2)
library(ggridges)
ggplot(iris, aes(x=Sepal.Length, y=Species, fill=..x..)) +
geom_density_ridges_gradient()
吗?
我理解fill = Sepal.Length
是指计算变量..x..
,对x
的调用可能不会在ggplot术语中看到变量,但在ggplot咒语时我们可以参考geom_density_ridges_gradient
,我们可以吗?
有人可以澄清为什么我们需要在这种情况下说Sepal.Length
而不是..x..
?我不完全确定这里的推理。
更准确地说,为什么这不起作用:
Sepal.Length
< ------------我想从此处开始重述我的查询------------>
如果我这样做:
ggplot(iris, aes(x=Sepal.Length, y=Species,
fill=Sepal.Length)) + geom_density_ridges_gradient()
geom_density_ridges_gradient将无法找到变量Sepal.Length并且它会出错。
所以,正确的咒语应该是:
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges_gradient(fill = Sepal.Length)
geom_density_ridges_gradient应该能够找到计算变量.. x ..但它不起作用。有人可以解释一下这是为什么吗?
另一个问题:
如果我这样做:
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
geom_density_ridges_gradient(fill = ..x..)
为什么它没有给我一个错误信息说Sepal.Length not found,
它只是忽略fill参数并绘制输出,为什么会这样?
最终似乎有用的是:
ggplot(iris, aes(x = Sepal.Length, y = Species,fill = Sepal.Length)) +
geom_density_ridges_gradient()
但我不确定为什么会有效。
基本上我很困惑应该放置与填充相对应的参数。
答案 0 :(得分:0)
我认为这里可能发生的事情是Sepal.Length
不是一个类别。
考虑到这一点,我可以假设这就是你所追求的吗? (如果没有,请告诉我,我会尽力回答你需要的东西。)
library(tidyverse)
library(ggridges)
ggplot(
data = iris,
aes(x=Sepal.Length, y=Species, fill=Species)
) +
geom_ridgeline(
stat = "binline",
bins = 20,
draw_baseline = FALSE
)
运行此代码会生成此图表:
但是,如果您想按照建议Sepal.Length
分组,可以添加以下内容(来自here):
ggplot(
data = iris,
aes(x=Sepal.Length, y=Species, fill=Species, group=Sepal.Length)
) +
geom_ridgeline(
stat = "binline",
bins = 20,
draw_baseline = FALSE
)
...会生成以下内容:
我希望能帮助你。