¿Cómo hacer un gráfico ECDF con ggplot2 en R?

El gráfico de función de distribución acumulativa empírica (ECDF) nos ayuda a visualizar una o más distribuciones. El gráfico ECDF es una excelente alternativa para los histogramas y tiene la capacidad de mostrar el rango completo de datos sin la necesidad de varios parámetros.

En este artículo, discutiremos cómo dibujar un gráfico ECDF utilizando el paquete ggplot2 del lenguaje de programación R. Para dibujar un gráfico ECDF, usamos la función stat_ecdf() del paquete ggplot2 de R Language.

Sintaxis: ggplot( df, aes(x)) + stat_ecdf( geom, col )

Parámetros: 

  • df : determina el marco de datos utilizado para trazar el gráfico ECDF
  • geom: determina la forma de la trama, es decir, punto, paso, etc.
  • col: determina el color de la trama

Crear un gráfico ECDF básico

En este ejemplo, crearemos un gráfico ECDF básico. Usaremos la función ggplot() y la función stat_ecdf() para trazar el gráfico ECDF.

R

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(700, 
                                          mean=800, 
                                          sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
stat_ecdf()

Producción:

Personalización de color

Para cambiar el color del gráfico ECDF usamos el parámetro col de la función stat_ecdf(). Podemos agregar cualquier color como el valor del parámetro col. Incluso podemos usar códigos hexadecimales de color. En este ejemplo, tenemos un gráfico ECDF de color verde creado con la función stat_ecdf() con el parámetro col verde.

R

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(700, mean=800, 
                                          sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# col parameter is used to color plot as green
stat_ecdf(col="green")

Producción:

Personalización de forma

Para cambiar la forma del gráfico ECDF usamos el parámetro geom de la función stat_ecdf(). Podemos agregar cualquier forma como el valor del parámetro geom. En este ejemplo, tenemos un diagrama ECDF en forma de escalera hecho usando la función stat_ecdf() con el parámetro geom siendo «paso».

R

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(20, mean=800, sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# geom parameter is used to shape plot as step
stat_ecdf(geom="step")

Producción:

Múltiples ECDF coloreados por grupo:

El gráfico ECDF se puede utilizar para trazar múltiples distribuciones. Para trazar múltiples gráficos ECDF, primero creamos un conjunto de datos multidimensional y luego usamos el parámetro col de la función aes() para colorearlos según el grupo. 

Aquí, hay gráficos ECDF de distribución múltiple trazados con color por grupo usando el parámetro col de la función aes() del paquete ggplot2. Para crear un conjunto de datos multidimensional, usaremos las funciones rnorm() con la función gl() para agruparlos en 5 columnas de tamaño 1000.

R

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = c(rnorm(1000, 10, 5), 
                        rnorm(1000, 20, 10),
                        rnorm(1000, 30, 20),
                        rnorm(1000, 40, 30),
                        rnorm(1000, 50, 30)),
                          group = gl(5, 1000))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
# col parameter is used to color plot 
# according to group
ggplot(sample_data, aes(x=x, col=group)) + 
  
# stat_ecdf() function is used to plot ECDF plot
stat_ecdf()

Producción:

Publicación traducida automáticamente

Artículo escrito por mishrapriyank17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *