如何在 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 )
随意调整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 中创建并排图