Я хочу создать следующий график плотности гистограммы с ggplot2
. В "обычном" способе (базовые пакеты) очень просто:
set.seed(46)
vector <- rnorm(500)
breaks <- quantile(vector,seq(0,1,by=0.1))
labels = 1:(length(breaks)-1)
den = density(vector)
hist(df$vector,
breaks=breaks,
col=rainbow(length(breaks)),
probability=TRUE)
lines(den)
С ggplot я дошел до этого:
seg <- cut(vector,breaks,
labels=labels,
include.lowest = TRUE, right = TRUE)
df = data.frame(vector=vector,seg=seg)
ggplot(df) +
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))
Но масштаб "y" имеет неправильное измерение. Я отметил, что следующий пробег получает правильную шкалу "y".
ggplot(df) +
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))
Я просто этого не понимаю. y=..density..
есть, это должна быть высота. Так почему же мой масштаб изменяется, когда я пытаюсь его заполнить?
Мне нужны цвета. Я просто хочу гистограмму, где разрывы и цвета каждого блока настраиваются в соответствии с цветами заливки ggplot по умолчанию.