我想使用ggridges包中的fill选项来显示数据集中另一个变量的平均值。
似乎我只能使用fill选项来描述图表或分位数中已经存在的x值。像这样:
library(ggridges)
library(viridis)
iris %>%
ggplot(aes(x = Sepal.Length, y = Species, fill = ..x..)) +
geom_density_ridges_gradient() +
scale_fill_viridis(option = "C")
但是,最好使用填充颜色来总结第三个变量。例如,我想显示每个物种在每个x值(Speal.Length)的平均Petal.Width值。
在我的脑海中,这就是它的工作方式,但是可惜它什么也没做:
iris %>%
group_by(Sepal.Length, Species) %>%
mutate(Avg.Petal.Length = mean(Petal.Length)) %>%
ggplot(aes(x = Sepal.Length, y = Species, fill = Avg.Petal.Length)) +
geom_density_ridges_gradient() +
scale_fill_viridis(option = "C")
答案 0 :(得分:0)
如果要填充每种物种的平均值,则需要先将数据分组:
library(tidyverse)
library(ggplot)
iris <- iris%>%
group_by(Species)%>%
mutate(test = mean(Petal.Width))
此后,填充aes将起作用:
iris %>%
ggplot(aes(x = Sepal.Length, y = Species, fill =test)) +
geom_density_ridges_gradient() +
scale_fill_viridis(option = "C")