Это дополнительный вопрос из моего предыдущего поста в Построение двух гистограмм сверху и снизу одного графика
Я нарисовал ниже пару гистограмм
library(ggplot2)
set.seed(1)
dat = rbind(data.frame('val' = rnorm(100), 'met' = 'Metric1'), data.frame('val' = rt(100, 2), 'met' = 'Metric12'))
ggplot(dat, aes(x = val, fill = met)) +
geom_histogram(data = dat[dat$met == 'Metric1',],
breaks = seq(-10, 10, 0.5),
mapping = aes(y = after_stat(density)),
colour = "black",
alpha = 0.3) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1)) +
geom_histogram(data = dat[dat$met == 'Metric12', ],
breaks = seq(-10, 10, 0.5),
mapping = aes(y = -after_stat(density)),
colour = "black",
alpha = 0.3)+
coord_cartesian(xlim = c(-10, 10))
Благодаря этому я смог нарисовать normal density plot
для первой гистограммы, но не смог наложить кривую нормальной плотности для второй гистограммы.
Любое предложение, как нарисовать второй normal density plot
для второй гистограммы, было бы здорово.
Спасибо за ваше время.
ggplot() +
geom_histogram(data = dat[dat$met == 'Metric1',],
breaks = seq(-10, 10, 0.5),
mapping = aes(x = val, y = after_stat(density)),
colour = "black",
alpha = 0.3) +
geom_histogram(data = dat[dat$met == 'Metric12', ],
breaks = seq(-10, 10, 0.5),
mapping = aes(x = val, y = -after_stat(density)),
colour = "black",
alpha = 0.3)+
coord_cartesian(xlim = c(-10, 10))+
geom_line(
aes(
x = dat[dat$met == 'Metric1',]$val,
y = dnorm(dat[dat$met == 'Metric1',]$val),
color = as.factor(1))
)+
geom_line(
aes(
x = dat[dat$met == 'Metric12',]$val,
y = -dnorm(dat[dat$met == 'Metric12',]$val),
color = as.factor(2))
)