4.1 Explicación

4.1.1 Gráficos Básicos en R

Rbase tiene algunos comandos genéricos para realizar gráficos, que se adaptan al tipo de información que se le pide graficar, por ejemplo:

  • plot()
  • hist()
##    id Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1   1          5.1         3.5          1.4         0.2  setosa
## 2   2          4.9         3.0          1.4         0.2  setosa
## 3   3          4.7         3.2          1.3         0.2  setosa
## 4   4          4.6         3.1          1.5         0.2  setosa
## 5   5          5.0         3.6          1.4         0.2  setosa
## 6   6          5.4         3.9          1.7         0.4  setosa
## 7   7          4.6         3.4          1.4         0.3  setosa
## 8   8          5.0         3.4          1.5         0.2  setosa
## 9   9          4.4         2.9          1.4         0.2  setosa
## 10 10          4.9         3.1          1.5         0.1  setosa

4.1.1.1 png

La función png() nos permite grabar una imagen en el disco. Lleva como argumento principal la ruta completa a donde se desea guardar la misma, incluyendo el nombre que queremos dar al archivo. A su vez pueden especificarse otros argumentos como el ancho y largo de la imagen, entre otros.

## [1] "resultados/grafico1.PNG"
## png 
##   2

La función png() abre el dispositivo de imagen en el directorio especificado. Luego creamos el gráfico que deseamos (o llamamos a uno previamente construido), el cual se desplegará en la ventana inferior derecha de la pantalla de Rstudio. Finalmente con dev.off() se cierra el dispositivo y se graban los gráficos.

Los gráficos del R base son útiles para escribir de forma rápida y obtener alguna información mientras trabajamos. Muchos paquetes estadísticos permiten mostrar los resultados de forma gráfica con el comando plot (por ejemplo, las regresiones lineales lm()).

Sin embargo, existen librerías mucho mejores para crear gráficos de nivel de publicación. La más importante es ggplot2, que a su vez tiene extensiones mediante otras librerías.

4.1.2 Ggplot2

ggplot tiene su sintaxis propia. La idea central es pensar los gráficos como una sucesión de capas, que se construyen una a la vez.

  • El operador + nos permite incorporar nuevas capas al gráfico.

  • El comando ggplot() nos permite definir la fuente de datos y las variables que determinaran los ejes del grafico (x,y), así como el color y la forma de las líneas o puntos,etc.

  • Las sucesivas capas nos permiten definir:

    • Uno o más tipos de gráficos (de columnas, geom_col(), de línea, geom_line(), de puntos, geom_point(), boxplot, geom_boxplot())
    • Títulos labs()
    • Estilo del gráfico theme()
    • Escalas de los ejes scale_y_continuous,scale_x_discrete
    • División en subconjuntos facet_wrap(),facet_grid()

ggplot tiene muchos comandos, y no tiene sentido saberlos de memoria, es siempre útil reutilizar gráficos viejos y tener a mano el machete.

4.1.2.1 Dimensiones del gráfico

Esta forma de pensar los gráficos nos permite repenser los distintos atributos como potenciales aliados a la hora de mostrar información multidimensional. Por ejemplo:

  • color color =
  • rellenofill =
  • forma shape =
  • tamaño size =
  • transparencia alpha =
  • Abrir un mismo gráfico según alguna variable discreta: facet_wrap()

  • Los atributos que queremos que mapeen una variable, deben ir dentro del aes(), aes(... color = variable)
  • Cuando queremos simplemente mejorar el diseño (es fijo), se asigna por fuera, o dentro de cada tipo de gráficos, geom_col(color = 'green').

4.1.2.2 Gráfico de Puntos

A continuación se muestra un gráfico de varias capas de construcción, con su correspondiente porción de código. En el mismo se buscará visualizar, a partir de la base de datos iris la relación entre el ancho y el largo de los petalos, mediante un gráfico de puntos.

4.1.2.3 Capas del Gráfico

Veamos ahora, el “paso a paso” del armado del mismo.

En primera instancia solo defino los ejes. Y en este caso un color particular para cada Especie.

Luego, defino el tipo de gráfico. El alpha me permite definir la intensidad de los puntos

Las siguientes tres capas me permiten respectivamente:

  • Definir el título del gráfico
  • Quitar la leyenda
  • Abrir el gráfico en tres fragmentos, uno para cada especie

4.1.2.4 Extensiones de GGplot.

La librería GGplot tiene a su vez muchas otras librerías que extienden sus potencialidades. Entre nuestras favoritas están:

También hay extensiones que te ayudan a escribir el código, como esquisse

4.1.3 Ejemplo con datos reales

4.1.3.1 Boxplot de ingresos de la ocupación principal, según nivel educativo

Hacemos un procesamiento simple: Sacamos los ingresos iguales a cero y las no respuestas de nivel educativo.
Es importante que las variables sean del tipo que conceptualmente les corresponde (el nivel educativo es una variable categórica, no continua), para que el ggplot pueda graficarlo correctamente.

## [1] "integer"
## [1] "integer"

Si queremos agregar la dimensión sexo, podemos hacer un facet_wrap()

Por la forma en que está presentado el gráfico, el foco de atención sigue puesto en las diferencias de ingresos entre niveles educativo. Simplemente se agrega un corte por la variable de sexo.

Si lo que queremos hacer es poner el foco de atención en las diferencias por sexo, simplemente basta con invertir la variable x especificada con la variable utilizada en el facet_wrap