我想给一个特定的区域上色,这里是ggridges密度曲线图中的col_bol = 1。我知道使用提供分位数的stat_density_ridges()可以做到这一点。如果我没有分位数,我会计算百分比。如果它只是一个没有刻面的图,这是可行的。
我如何使用下面的数据来实现它?
library(tidyverse)
library(ggridges)
plot_data <- iris %>% gather(key = 'key', value = 'value', -Species) %>% mutate(col_bol = case_when(
Species == 'setosa' & (value < 1.5 | value > 6) ~ 1,
Species != 'setosa' & (value < 1.3 | value > 6.2) ~ 1,
TRUE ~ 0))
ggplot(data = plot_data, mapping = aes(y = key, x = value)) +
geom_density_ridges() +
facet_wrap(~Species, scales = 'free_x') +
theme_ridges()发布于 2020-05-18 22:21:34
我没有遇到任何特别的麻烦,用一个方面来描绘它。
如果我用分位数来举你的例子:
ggplot(data = plot_data,
mapping = aes(y = key, x = value, fill = factor(stat(quantile)))) +
stat_density_ridges(
geom = "density_ridges_gradient",
calc_ecdf = TRUE,
quantiles = c(0.025, 0.975)) +
facet_wrap(.~Species, scales = 'free_x') +
theme_ridges()它返回一个带有所希望的cols的小平面图。

https://stackoverflow.com/questions/61864485
复制相似问题