如何在 ggplot2 中叠加密度图(附示例)


密度图是可视化数据集中值分布的有用方法。

通常,您可能希望同时查看多个变量的密度图。幸运的是,使用 R 中的ggplot2数据可视化包和以下语法很容易做到这一点:

 ggplot(data, aes (x=value, fill=variable)) +
  geom_density(alpha= .25 )

alpha参数控制每个密度图的不透明度。将此值设置为低于 1 非常重要,这样您就可以看到每个重叠的密度图。

以下分步示例展示了如何在实践中使用此语法。

第 1 步:创建数据

首先,让我们创建一个包含三个变量的假数据集:

 #make this example reproducible
set. seeds (1)

#createdata
df <- data. frame (var1=rnorm(1000, mean=0, sd=1),
                 var2=rnorm(1000, mean=0, sd=3),
                 var3=rnorm(1000, mean=3, sd=2))

#view first six rows of data
head(df)

        var1 var2 var3
1 -0.6264538 3.4048953 1.2277008
2 0.1836433 3.3357955 -0.8445098
3 -0.8356286 -2.6123329 6.2394015
4 1.5952808 0.6321948 4.0385398
5 0.3295078 0.2081869 2.8883001
6 -0.8204684 -4.9879466 4.3928352

步骤 2:将数据从宽数据转换为长数据

接下来,我们需要将数据从宽格式转换为长格式,以使其与ggplot2兼容:

 library (reshape)

#convert from wide format to long format
data <- melt(df)

#view first six rows
head(data)

  variable value
1 var1 -0.6264538
2 var1 0.1836433
3 var1 -0.8356286
4 var1 1.5952808
5 var1 0.3295078
6 var1 -0.8204684

步骤 3:创建重叠密度图

最后,我们可以创建重叠密度图:

 library (ggplot2)

#create overlaying density plots
ggplot(data, aes (x=value, fill=variable)) +
  geom_density(alpha= .25 ) 

在 ggplot2 中叠加密度图

随意调整alpha值以使密度图或多或少透明。

例如,如果我们增加 alpha 值,绘图将如下所示:

 library (ggplot2)

#create overlaying density plots
ggplot(data, aes (x=value, fill=variable)) +
  geom_density(alpha= .7 ) 

其他资源

如何使用 ggplot2 在 R 中创建甘特图
如何使用 ggplot2 在 R 中创建分组箱线图
如何使用 ggplot2 在 R 中创建并排图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注