Я хочу создать следующий график плотности гистограммы с 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 по умолчанию.