График плотности — удобный способ визуализации распределения значений в наборе данных.
Часто вам может понадобиться визуализировать графики плотности нескольких переменных одновременно. К счастью, это легко сделать с помощью пакета визуализации данных ggplot2 в R со следующим синтаксисом:
ggplot(data, aes (x=value, fill=variable)) +
geom_density(alpha= .25 )
Аргумент альфа управляет непрозрачностью каждого графика плотности. Важно установить это значение ниже 1, чтобы вы могли видеть каждый график плотности, когда они накладываются друг на друга.
В следующем пошаговом примере показано, как использовать этот синтаксис на практике.
Шаг 1: Создайте данные
Во-первых, давайте создадим поддельный набор данных с тремя переменными:
#make this example reproducible
set. seed (1)
#create data
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 )

Не стесняйтесь настраивать альфа -значение, чтобы сделать графики плотности более или менее прозрачными.
Например, вот как будут выглядеть графики, если мы увеличим значение альфа:
library (ggplot2)
#create overlaying density plots
ggplot(data, aes (x=value, fill=variable)) +
geom_density(alpha= .7 )

Дополнительные ресурсы
Как создать диаграмму Ганта в R с помощью ggplot2
Как создать сгруппированный блокплот в R с помощью ggplot2
Как создавать параллельные графики в R с помощью ggplot2