📜  ggplot2 重叠直方图 (1)

📅  最后修改于: 2023-12-03 14:41:24.349000             🧑  作者: Mango

ggplot2 重叠直方图

ggplot2是R语言中最流行的数据可视化包之一,它提供了一个完整的语法来创建各种类型的图形。重叠直方图是一种常见的数据可视化方式,可以用于比较多个分布之间的差异。本文将介绍如何使用ggplot2包创建重叠直方图。

准备数据

我们首先需要准备一个数据集,这里使用R内置的mtcars数据集,该数据集包含32辆汽车的性能数据,包括每加仑汽油行驶的英里数、引擎排量等。我们选取其中两个变量:mpg(每加仑汽油行驶的英里数)和disp(引擎排量)。

library(ggplot2)
data(mtcars)
df <- mtcars[, c("mpg", "disp")]
head(df)
创建基础图层

我们首先创建一个基础图层,使用geom_histogram函数绘制直方图。其中,aes函数将mpg映射到x轴。另外,使用fill参数来定义直方图颜色。

ggplot(df, aes(x=mpg, fill="mpg")) +
  geom_histogram(alpha=0.5, position="identity")
添加第二个直方图

接下来,我们添加第二个直方图,以比较mpg和disp变量之间的差异。这里我们需要定义一个新的图层,同样使用geom_histogram函数,但是将disp变量映射到x轴。同时,为了使两个直方图重叠而不是堆叠,我们需要设置position参数为"dodge"。

ggplot(df, aes(fill="variable")) +
  geom_histogram(aes(x=mpg), alpha=0.5, position="dodge") + 
  geom_histogram(aes(x=disp), alpha=0.5, position="dodge")
调整图形样式

最后,我们可以对图形进行进一步调整,例如添加标题、修改颜色和图例等。

ggplot(df, aes(fill="variable")) +
  geom_histogram(aes(x=mpg), alpha=0.5, position="dodge", color="black") + 
  geom_histogram(aes(x=disp), alpha=0.5, position="dodge", color="black") +
  labs(title="重叠直方图", x="每加仑汽油行驶的英里数/引擎排量", y="频数") +
  scale_fill_manual(values = c("#E69F00", "#56B4E9")) + 
  theme_bw()

以上就是使用ggplot2包创建重叠直方图的全部过程。在实际应用中,可以根据需要对图形进行进一步调整和美化。