Eu gostaria de usar after_stat(ndensity)
para escalar para no máximo 1, como descrito aqui :
densidade after_stat(ndensity), dimensionada para um máximo de 1.
Quando usamos isso com uma fill
estética, é claro que ele dimensiona cada um fill
separadamente, mas eu queria saber se é possível dimensionar after_stat
os dados completos para que todas as fill
densidades sejam combinadas. Aqui está um exemplo reproduzível:
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(aes(y = after_stat(ndensity)), alpha = 0.4)
Criado em 19/10/2023 com reprex v2.0.2
Como esperado, as densidades são dimensionadas para no máximo 1. Mas gostaria de saber se alguém sabe como dimensionar o combinado, tendo as três densidades separadamente. Isso resultaria em apenas uma curva de densidade com valor máximo de 1. Poderíamos usar ggplot_build
para modificar a camada, mas gostaria de saber se existe uma after_stat
única opção?
Não tenho certeza se entendi a saída desejada corretamente. Se você quiser que a densidade de pico da curva mais alta seja igual a um, e as outras sejam mostradas em termos relativos, podemos pré-calcular a densidade de pico e dividir
after_stat(density)
por ela:Se você quiser que as curvas sejam empilhadas com uma densidade total de pico de 1, você poderá fazer: