У меня есть два графика для разных подмножеств моих данных:
- один график оценки ядра для данных> 0
- один гистограмма (фактически только один бин) для данных == 0
, который я хотел бы объединить в одном графике, используя ggplot2.
Проблема в том, что ggplot продолжает рисовать линию моего ядра для всей оси x.
values <- c(25.222222, 6.000000, 2.057143, 0.000000, 2.142857, 0.000000, 73.666667,
4.081081, 43.133333, 18.937500, 60.822222, 23.379310, 54.954412, 8.492308,
67.646250, 15.885000, 38.585859, 46.810606, 31.565152, 39.813889,
40.620000, 25.958000, 54.821429, 9.000000, 33.040476, 50.329670, 43.525641,
33.508696, 34.265385, 57.003544, 36.690434, 48.074074, 70.372222,
77.602564, 29.997436, 71.739683, 11.320000, 2.938776, 10.101562, 35.037956)
df <- data.frame(variable = "TH_part", value=values)
library(ggplot2)
p1.kernel <- ggplot(subset(df, value!=0), aes(x=value, y=..density.., color=variable)) +
geom_density() +
scale_x_continuous(limits = c(0, 200)) + theme_bw()
p1.kernel +
geom_histogram(data=subset(df, value==0),
aes(x=value, y=..density.., fill=variable),
breaks=seq(-10,200,by=10), alpha=0.4) +
scale_x_continuous(limits = c(-10, 200)) +
theme(legend.position="none")
график ядра в определенных пределах:
ядро плюс гистограмма, но за пределами:
Как я могу использовать различные ограничения на мой xaxis?
И кроме того, почему диаграммы больше не связаны?Если я посмотрю на это:
ggplot(df, aes(x=value, y=..density.., color=variable)) +
geom_histogram(breaks=seq(0,200,by=10), fill="white") +
geom_density() + scale_x_continuous(limits = c(0, 200)) + theme_bw()
, то полоса / корзина должна быть намного меньше (поскольку только часть в начале равна 0).
Дополнительно: использование stat_density(adjust = 0.5)
для управлениякоэффициент сглаживания ядра даст мне второе ядро на графике.Как я могу использовать меньший коэффициент сглаживания на наложенном графике выше?
РЕДАКТИРОВАТЬ:
с помощью GGamba Я получил этот график с подсчетами по оси Y:
Здесь ячейка с 0 записями значительно меньше по плотности.