共享同一 y 轴的多个直方图上的密度曲线
Density curves on multiple histograms sharing same y-axis
我需要在共享同一 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 轴上显示计数或密度的最终数字。
关于如何从这里开始的任何想法?
提前致谢。
我相信问题中的代码几乎是正确的,下面的代码只是使用@akrun提供的link中的答案。
请注意,我通过在最后一个加号前放置一个注释字符来注释掉对 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)
我需要在共享同一 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 轴上显示计数或密度的最终数字。
关于如何从这里开始的任何想法?
提前致谢。
我相信问题中的代码几乎是正确的,下面的代码只是使用@akrun提供的link中的答案。
请注意,我通过在最后一个加号前放置一个注释字符来注释掉对 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)