我需要在共享相同y轴的3个直方图上覆盖法线密度曲线。每个直方图的曲线必须分开。
我的数据框(示例):
height <- seq(140,189, length.out = 50)
weight <- seq(67,86, length.out = 50)
fev <- seq(71,91, length.out = 50)
df <- as.data.frame(cbind(height, weight, fev))
我为数据创建了直方图:
library(ggplot)
library(tidyr)
df %>%
gather(key=Type, value=Value) %>%
ggplot(aes(x=Value,fill=Type)) +
geom_histogram(binwidth = 8, position="dodge")
我现在停留在如何将3个变量的正常密度曲线(每个直方图的单独曲线)覆盖在生成的直方图上的问题上。我不介意在y轴上显示计数或密度的最终数字。
是否有任何关于如何从此处进行的想法?
谢谢。
答案 0 :(得分:1)
我相信问题中的代码几乎是正确的,下面的代码仅使用@akrun提供的链接中的答案。
请注意,我已通过在最后一个加号之前放置一个注释字符来注释掉对facet_wrap
的调用。
library(ggplot2)
library(tidyr)
df %>%
gather(key = Type, value = Value) %>%
ggplot(aes(x = Value, color = Type, fill = Type)) +
geom_histogram(aes(y = ..density..),
binwidth = 8, position = "dodge") +
geom_density(alpha = 0.25) #+
facet_wrap(~ Type)