如何在同一轴刻度上绘制两个直方图?

1 plot r histogram ggplot2

我有两个数据框:dataf1、dataf2。它们具有相同的结构和列。3 列名称为 A、B、C。他们都有 50 行。我想在 dataf1 和 dataf2 上绘制 B 列的直方图。我可以分别绘制两个直方图,但它们的比例不同。我想知道如何使用不同的颜色将它们放在同一个直方图上或绘制相同比例的两个直方图?

ggplot() + aes(dataf1$B)+ geom_histogram(binwidth=1, colour="black",fill="white") 
ggplot() + aes(dataf2$B)+ geom_histogram(binwidth=1, colour="black", fill="white")
Run Code Online (Sandbox Code Playgroud)

eip*_*i10 5

将您的数据合并到一个数据框中,并用一个新列标记数据最初来自哪个数据框。然后使用该新列来填充绘图的美感。

data1$source="Data 1"
data2$source="Data 2"

dat_combined = rbind(data1, data2)
Run Code Online (Sandbox Code Playgroud)

您尚未提供示例数据,因此这里是使用内置iris数据框可能绘制的一些示例。在下面的图中,dat类似于dat_combinedPetal.Width类似于B, 并且Species类似于source

dat = subset(iris, Species != "setosa") # We want just two species

ggplot(dat, aes(Petal.Width, fill=Species)) + 
  geom_histogram(position="identity", colour="grey40", alpha=0.5, binwidth=0.1)

ggplot(dat, aes(Petal.Width, fill=Species)) + 
  geom_histogram(position="dodge", binwidth=0.1)

ggplot(dat, aes(Petal.Width, fill=Species)) + 
  geom_histogram(position="identity", colour="grey40", binwidth=0.1) +
  facet_grid(Species ~ .)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述