Una de las mayores fortalezas de R, en relacion con otros lenguajes de programacion, es la facilidad con la que podemos crear graficos con calidad de publicacion. En esta leccion, usted aprendera acerca de los graficos de R. No cubriremos las partes mas avanzadas de graficos. Estos incluyen lattice, ggplot2 y ggvis. Comenzaremos trabajando con data frames simples. El principal objetivo es introducir funciones y argumentos de ploteos.

Este material esta basado en la leccion de “Base Graphics” de “R Programming”, paquete swirl. Author: David Kane, Organization: Williams College, Version: 0.1.1.

Comencemos ahora!

Cargue el data frame de cars con data(cars). Si es necesario, abra la pagina de ayuda para cars con ?cars. Como se puede ver en la pagina de ayuda, el conjunto de datos los coches solo tiene dos variables: la velocidad y la distancia de frenado. Tenga en cuenta que los datos son de la decada de 1920.

Escriba head() para los datos de cars.

data(cars)
head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10

Ejecute el comando plot() para el data frame cars. Como siempre, R intenta dar algo sensato dada la informacion que se ha proporcionado. En primer lugar, R indica que el data frame tiene dos columnas, por lo que asume que desea dibujar una columna frente a la otra. En segundo lugar, ya que no se proporcionan etiquetas para los ejes, R utiliza los nombres de las columnas. En tercer lugar, se crean marcas de graduacion del eje en numeros enteros. En cuarto lugar, utiliza los otros valores por omision del comando plot().

plot(cars)

Ahora exploraremos mas en detalle la funcion plot, que es una abreviatura de scatterplot o diagrama de dispersion.

Abra la pagina de ayuda para plot(). La pagina de ayuda de plot () muestra los diferentes argumentos que la funcion puede tomar. Los dos mas importantes son X e Y, las variables que se plotean. Para el siguiente conjunto de preguntas, incluya los nombres de los argumentos en sus respuestas. Use el comando plot() para mostrar la velocidad en el eje x y la distancia en el eje y, usando el data.frame de cars. Use la forma en la que los vectores son explicitamente pasados como argumentos x e y. Tenga en cuenta que esto produce una respuesta ligeramente diferente al plot(cars). En este caso, R no esta seguro de que desea utilizar como las etiquetas de los ejes, por lo que solo utiliza los argumentos que se pasan.

Otra manera de llamar el comando plot, es utilizando la interfaz de “formula”. Por ejemplo, un plot similar al anterior es usar plot(dist ~ speed, cars). Sin embargo, vamos a esperar un poco antes de utilizar la interfaz de formula.

?plot
## starting httpd help server ... done
plot(x = cars$speed, y = cars$dist)

Use el comando plot() para mostrar la distancia (dist) en el eje x y la velocidad (speed) en el eje. Es lo inverso que en el paso anterior. Probablemente tiene mas sentido que la velocidad vaya en el eje x ya que la distancia de frenado es funcion de la velocidad. Asi, para el resto de las preguntas de esta parte de la leccion, siempre asignar los argumentos en consecuencia. De hecho, se puede asumir que las respuestas a las siguientes preguntas son todas de la forma plot(x = cars\(speed, y = cars\)dist, …) pero con diferentes argumentos utilizados.

plot(x = cars$dist, y = cars$speed)

Vuelve a hacer el plot con la etiqueta (label) del eje x como “Speed”. Usa el argumento xlab = “Speed”

plot(x = cars$speed, y = cars$dist, xlab = "Speed")

Ahora tambien incorpora la etiqueta (label) del eje y como “Stopping Distance”. Usa tambiebn el argumento ylab = “Stopping Distance”.

plot(x = cars$speed, y = cars$dist, xlab = "Speed", ylab = "Stopping Distance")

La razon de que plot(cars) funciono al comienzo de la leccion es que R es lo suficientemente inteligente como para saber que el primer elemento (es decir, la primera columna) en cars debe ser asignado al argumento x y el segundo elemento al argumento y . Para ahorrar en la escritura, la siguiente serie de respuestas seran todos de la forma plot(cars, …) con diferentes argumentos incorporados. Para cada pregunta, solo se agregara un argumento adicional a la vez. Por supuesto, usted puede usar en mas de un argumento al hacer un proyecto real.

Plotee cars con el titulo principal de “My Plot”. Tenga en cuenta que el argumento para el titulo principal es “main” y no “title”. Luego, plotee cars con el subtitulo “My Plot Subtitle”.

plot(cars, main = "My Plot")

plot(cars, sub = "My Plot Subtitle")

Plotee cars con color rojo. (Use col = 2)

plot(cars, col = 2)

Plotee cars limitando el eje x de 10 a 15. (Use xlim = c(10, 15))

plot(cars, xlim = c(10, 15))

Tambien se puede cambiar la forma de los simbolos en el plot. Use la pagina de ayuda de pints (?points) y observe el argumento pch.Plotee cars usando triangulos. (Use pch = 2)

plot(cars, pch = 2)

Ahora vamos a ver algunas otras funciones de graficos base que pueden ser utiles, como por ejemplo los diagramas de caja o boxplots.

Carga el data frame de mtcars. Cada vez que se carga un nuevo data frame, usted debe explorarlo antes de usarlo con funciones como dim(mtcares) y head(mtcars).

data(mtcars)
dim(mtcars)
## [1] 32 11
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Abra la pagina de ayuda para boxplot().

En lugar de agregar columnas de datos directamente como argumentos de entrada, como lo hicimos con plot(), a menudo es util para pasar todo el data frame. Esto es lo que permite el argumento de “data” en boxplot(). boxplot(), al igual que muchas de las funciones de R, tambien tiene un argumento “formula”. En general es una expresion con (“~”), que indica la relacion entre las variables de entrada. Esto le permite introducir algo como mpg ~ cil para trazar la relacion entre cilindros (numero de cilindros) en el eje X y mpg (millas por galon) en el eje y. Use boxplot() con formula = mpg ~ cyl y data = mtcars para crear un boxplot.

El grafico muestra que mpg es mucho menor para los coches con mas cilindros. Tenga en cuenta que podemos utilizar el mismo conjunto de argumentos que hemos explorado con plot() arriba para agregar etiquetas de los ejes, titulos y demas.

?boxplot
boxplot(formula = mpg ~ cyl, data = mtcars)

Cuando se trabaja con una sola variable, los histogramas son una herramienta muy util. La funcion es hist() y es utilizada pasando como argumento un vector. Use hist() con el vector mtcars$mpg para crear un histograma.

hist(mtcars$mpg)

Ha llegado al final de esta leccion!