El paquete ggplot2 en el lenguaje de programación R, también denominado Grammar of Graphics , es un paquete de visualización gratuito, de código abierto y fácil de usar ampliamente utilizado en R. Es el paquete de visualización más poderoso escrito por Hadley Wickham.
Incluye varias capas sobre las que se rige. Las capas son las siguientes:
Building Blocks de capas con la gramática de gráficos
- Datos: El elemento es el propio conjunto de datos.
- Estética: los datos se asignan a los atributos de Estética, como eje x, eje y, color, relleno, tamaño, etiquetas, alfa, forma, ancho de línea, tipo de línea
- Geometría: cómo se muestran nuestros datos usando punto, línea, histograma, barra, diagrama de caja
- Facetas: Muestra el subconjunto de los datos usando Columnas y filas
- Estadísticas: Binning, suavizado, descriptivo, intermedio
- Coordenadas: el espacio entre los datos y la visualización usando límites cartesianos, fijos, polares
- Temas: enlace sin datos
Conjunto de datos utilizado
mtcars (prueba de carretera de automóviles de tendencia del motor) comprende el consumo de combustible y 10 aspectos del diseño y el rendimiento del automóvil para 32 automóviles y viene preinstalado con el paquete dplyr en R.
R
# Installing the package install.packages("dplyr") # Loading package library(dplyr) # Summary of dataset in package summary(mtcars)
Producción:
mpg cyl disp hp Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5 Median :19.20 Median :6.000 Median :196.3 Median :123.0 Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0 Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0 drat wt qsec vs Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 Median :3.695 Median :3.325 Median :17.71 Median :0.0000 Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000 am gear carb Min. :0.0000 Min. :3.000 Min. :1.000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000 Median :0.0000 Median :4.000 Median :2.000 Mean :0.4062 Mean :3.688 Mean :2.812 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000 Max. :1.0000 Max. :5.000 Max. :8.000
Ejemplo de paquete ggplot2 en Programación R
Diseñamos visualizaciones en el conjunto de datos mtcars que incluye 32 marcas de automóviles y 11 atributos usando capas ggplot2 .
Capa de datos:
En la capa de datos definimos la fuente de la información a visualizar, usemos el conjunto de datos mtcars en el paquete ggplot2
R
# Loading packages library(ggplot2) library(dplyr) # Data Layer ggplot(data = mtcars)
Producción:
Capa Estética:
Aquí mostraremos y mapearemos el conjunto de datos en cierta estética.
R
# Aesthetic Layer ggplot(data = mtcars, aes(x = hp, y = mpg, col = disp))
Producción:
Capa geométrica:
En la capa geométrica, controle los elementos esenciales, vea cómo se muestran nuestros datos usando punto, línea, histograma, barra, diagrama de caja
R
# Geometric layer ggplot(data = mtcars, aes(x = hp, y = mpg, col = disp)) + geom_point()
Producción:
Capa geométrica: agregar tamaño, color y forma y luego trazar el gráfico de histograma
R
# Adding size ggplot(data = mtcars, aes(x = hp, y = mpg, size = disp)) + geom_point() # Adding color and shape ggplot(data = mtcars, aes(x = hp, y = mpg, col = factor(cyl), shape = factor(am))) + geom_point() # Histogram plot ggplot(data = mtcars, aes(x = hp)) + geom_histogram(binwidth = 5)
Producción:
Capa de facetas:
Se utiliza para dividir los datos en subconjuntos del conjunto de datos completo y permite que los subconjuntos se visualicen en el mismo gráfico. Aquí separamos filas según tipo de transmisión y Columnas separadas según cilindros
R
# Facet Layer p <- ggplot(data = mtcars, aes(x = hp, y = mpg, shape = factor(cyl))) + geom_point() # Separate rows according to transmission type p + facet_grid(am ~ .) # Separate columns according to cylinders p + facet_grid(. ~ cyl)
Producción:
Capa de estadísticas
En esta capa, transformamos nuestros datos usando binning, suavizado, descriptivo, intermedio
R
# Statistics layer ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + stat_smooth(method = lm, col = "red")
Producción:
Capa de coordenadas:
En estas capas, las coordenadas de los datos se asignan juntas al plano mencionado del gráfico y ajustamos el eje y cambiamos el espaciado de los datos mostrados con las dimensiones del gráfico de Control.
R
# Coordinates layer: Control plot dimensions ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point() + stat_smooth(method = lm, col = "red") + scale_y_continuous("mpg", limits = c(2, 35), expand = c(0, 0)) + scale_x_continuous("wt", limits = c(0, 25), expand = c(0, 0)) + coord_equal()
Producción:
Coord_cartesian() para acercar correctamente:
R
# Add coord_cartesian() to proper zoom in ggplot(data = mtcars, aes(x = wt, y = hp, col = am)) + geom_point() + geom_smooth() + coord_cartesian(xlim = c(3, 6))
Producción:
Capa de tema:
Esta capa controla los puntos más finos de la visualización, como el tamaño de la fuente y las propiedades del color de fondo.
Ejemplo 1: Capa de tema – función element_rect()
R
# Theme layer ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + facet_grid(. ~ cyl) + theme(plot.background = element_rect( fill = "black", colour = "gray"))
Producción:
Ejemplo 2:
R
ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + facet_grid(am ~ cyl) + theme_gray()
Producción:
ggplot2 proporciona varios tipos de visualizaciones. Se pueden usar más parámetros incluidos en el paquete, ya que el paquete brinda un mayor control sobre las visualizaciones de datos. Muchos paquetes pueden integrarse con el paquete ggplot2 para hacer que las visualizaciones sean interactivas y animadas.