Я хотел бы добавить вертикальные сегменты к линейному графику, гистограммы которого показывают настроенные квантили.
Мне удалось получить вертикальные сегменты, если сопоставить цвет заливки с ..x..
. Но я бы хотел показать квантили на графиках плотности. Я написал следующий код:
library(datasets)
library(ggplot2)
data("iris")
iris_lines <- data.frame(Species = c("setosa", "versicolor", "virginica"),
x0 = c(5, 5.9, 6.5))
Figure1 <- ggplot(iris, aes(x=Sepal.Length, y=Species, fill=(..quantile..))) +
geom_density_ridges_gradient(jittered_points = FALSE, calc_ecdf = TRUE, quantile_lines = c(TRUE), quantiles =c(0.1,0.25,0.75,0.9),scale=0.9, color='white')+
geom_segment(data = iris_lines, aes(x = x0, xend = x0, y = as.numeric(Species), yend = as.numeric(Species) + c(.9,.5,.5)), color = "red") + scale_y_discrete(expand = c(0.01, 0))
Figure1
Код работает, если я отображаю цвет заливки как fill = ..x..
. Я получаю три вертикальные линии, представляющие среднее значение каждого графика плотности; однако, если я сопоставлю цвет заливки как fill = ..quantile..
, я получу следующую ошибку:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 1, 3