Возможны два случая использования geom_density()
. Это зависит от того, какой уровень статистики вы указываете:
- Стандартный случай - это stat density , которая заставляет функцию geom_de density () вычислять свои значения y на основе частотного распределения с учетом значений x. В этом случае вы НЕ ДОЛЖНЫ доказывать ay aestheti c, потому что они вычисляются за кулисами.
- Затем есть второй случай, который принадлежит вам, и который вы должны указать явно, изменив стат на identity : Это необходимо, если по какой-то причине вы предварительно вычислили значения, которые хотите передать непосредственно в функцию плотности.
Проблема возникает, если вы смешиваете случай 1) и 2). Но я согласен, сообщение об ошибке не совсем ясное, его можно упомянуть, чтобы убедиться, что используемый stat является желаемым.
library(ggplot2)
test <- data.frame(time = rnorm(100), age = rnorm(100))
#if you want to use precalculated y values you have to change the used stat to identity:
ggplot(test) +
geom_density(aes(x = age, y = time),
stat = "identity")
# compared to the case with the default value of stat: stat = "density"
ggplot(test) +
geom_density(aes(x = age))
Created on 2020-08-04 by the пакет REPEX (v0.3.0)