Como sobrepor gráficos de densidade em ggplot2 (com exemplos)


Um gráfico de densidade é uma forma útil de visualizar a distribuição de valores em um conjunto de dados.

Muitas vezes você pode querer visualizar gráficos de densidade de diversas variáveis de uma só vez. Felizmente, isso é fácil de fazer usando o pacote de visualização de dados ggplot2 em R com a seguinte sintaxe:

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

O argumento alfa controla a opacidade de cada gráfico de densidade. É importante definir esse valor abaixo de 1 para que você possa ver cada gráfico de densidade à medida que eles se sobrepõem.

O exemplo passo a passo a seguir mostra como usar essa sintaxe na prática.

Etapa 1: crie os dados

Primeiro, vamos criar um conjunto de dados falso com três variáveis:

 #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

Etapa 2: converter dados de largos para longos

Em seguida, precisamos converter os dados de um formato amplo para um formato longo para torná-los compatíveis com 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

Etapa 3: Crie os gráficos de densidade sobrepostos

Finalmente, podemos criar os gráficos de densidade sobrepostos:

 library (ggplot2)

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

Sobreposição de gráficos de densidade no ggplot2

Sinta-se à vontade para ajustar o valor alfa para tornar os gráficos de densidade mais ou menos transparentes.

Por exemplo, os gráficos ficariam assim se aumentássemos o valor alfa:

 library (ggplot2)

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

Recursos adicionais

Como criar um gráfico de Gantt em R usando ggplot2
Como criar um boxplot agrupado em R usando ggplot2
Como criar gráficos lado a lado em R usando ggplot2

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *