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