El material de este taller ha sido creado por R-luminatis para estudiantes de biología de la Universidad Nacional de Costa Rica (e interesados en aprender).

Si usted quiere ser partícipe de los talleres, o quiere organizar este mismo taller en su centro de estudio o grupo de trabajo, puede contactarnos a los correos:

Contacto: ronny.hernandez@gmail.com / alvarovh95@gmail.com

Temas de la sesión

¿Por qué usar ggplot?

ggplot permite generar gráficos 2D basados en capas, que se pueden adicionar en infinitas combinaciones, empoderando al científico para que pueda realizar gráficos imposibles para otros programas tradicionales. Como comprobación de esto, se le puede ver citado en artículos científicos de alto impacto, en los cuales jamás hubieran podido usar programas tradicionales o la versión básica de gráficos de R-base

Drawing

Problemas en otros programas:

Drawing

Solución:
Grammar of graphics (Wilkinson, 2005)

Drawing
Fuente: https://www.sylvaindurand.org/spatial-data-analysis-with-R/

Problema en alternativa “R base”:

  • Gráficos guardados como imágenes
    • Compuestas de elementos “crudos” difíciles de editar y combinar
plot(iris$Sepal.Length,iris$Sepal.Width, col=iris$Species, 
     xlab="Sepal length",ylab="Sepal width",pch=16)

Solución:

Programación de gráficos por capas.

library(ggplot2)
ggplot(iris, aes(Sepal.Length,Sepal.Width,colour=Species))+
  geom_point()+
  geom_smooth()+
  xlab("Sepal length")+
  ylab("Sepal width")
## `geom_smooth()` using method = 'loess'

plot(iris$Sepal.Length, iris$Sepal.Width,xlab="Sepal length",
     ylab = "Sepal or petal width")
points(iris$Sepal.Length, iris$Petal.Width, col = "red")

ggplot(iris,aes(Sepal.Length, Sepal.Width))+
xlab("Sepal length")+ ylab("Sepal or petal width")+
geom_point()+
geom_point(aes(Sepal.Length, Petal.Width),col="red")

Componentes de la gramática de capas

ggplot(iris,aes(Sepal.Length, Sepal.Width))

Otra opci?n: qpot()
* Funciona parecido a plot de r-base, pero es muy limitada

Componentes de la gramática de capas

Aesthetic mapping

  • Se definen con aes()
  • Significado de aesthetic en ggplot: “Algo que se puede ver”
  • Cada geom acepta un conjunto de aesthetics
  • Ejemplos:
    • position (i.e., en el eje “x” y “y”)
    • color (color “exterior”)
    • fill (color “interior”)
    • shape (de los puntos)
    • linetype
    • size
  • Ejemplos
ggplot(iris,aes(Sepal.Length,Sepal.Width,col=Species))+
  geom_point()+
  stat_smooth()
## `geom_smooth()` using method = 'loess'

ggplot(iris,aes(Sepal.Length,Sepal.Width,col=Species))+
  geom_point()+
  geom_smooth(method = "lm",se=F)

ggplot(iris,aes(Sepal.Length,Sepal.Width,col=Species))+
  geom_point()+
  geom_smooth(method = "lm",se=T)

Más ejemplos en http://www.cookbook-r.com/Graphs/Scatterplots_(ggplot2)/

Referencias

Wickham, H. (2016). ggplot2: elegant graphics for data analysis. Springer.

http://tutorials.iq.harvard.edu/R/Rgraphics/Rgraphics.html

https://rpubs.com/hadley/ggplot2-layers