GGPLOT2

¿Qué es ggplot2?

La librería ggplot2 de R es un sistema organizado de visualización de datos. Forma parte del conjunto de librerías llamado tidyverse.

Un gráfico en ggplot2 se construye combinando una serie de elementos básicos y comunes a muchos tipos de gráficos distintos mediante una sintaxis sencilla. Esta sección describe esa sintaxis y los elementos que articula

¿Qué tipos de gráficos puedo realizar con ggplot2?

Uso de ggplot2

Es difícil describir sucintamente cómo funciona ggplot2 porque encarna una profunda filosofía de visualización. Sin embargo, en la mayoría de los casos, comience con ggplot()un conjunto de datos y un mapeo estético (con aes()). Luego agrega capas (como geom_point()o geom_histogram()), escalas (como scale_colour_brewer()), especificaciones de facetado (como facet_wrap()) y sistemas de coordenadas (como coord_flip()).

Instalación

La forma más fácil de obtener ggplot2 es instalar todo el tidyverse:

install.packages ( “tidyverse” )

Alternativamente, instale solo ggplot2:

install.packages ( “ggplot2” )

O la versión de desarrollo de GitHub:

install.packages (“devtools”)

devtools :: install_github ( “tidyverse / ggplot2” )

GRÁFICO DE LÍNEAS

En este documento aprenderemos como elaborar un gráfico de líneas con diferentes alternativas que nos ayudaran a que nuestro gráfico tenga una presentación muy llamativa. por ejemplo: saber las coordenadas de los puntos donde ubiquemos nuestro cursor o mostrar un gráfico dinámico que avance a medida que el tiempo también lo hace.

Gráfico de Líneas Básico

#Usaremos la Base de datos que nos proporciona la librería babynames
library(ggplot2)   #USO PARA LOS GRÁFICOS
library(dplyr)     #USO PARA FILTROS
library(babynames) #BASE DE DATOS

#Filtraremos una cantidad de 4 nombres femeninos
bbnm<-babynames %>%
  filter(name %in%  c("Mary", "Helen", "Linda","Emma")) %>% 
  filter(sex=="F")
#Seleccionaremos los ejes, color y grupo de datos 
bbnms1<-bbnm %>% 
  ggplot(aes(x=year,y=n, group=name, color=name)) + 
  geom_line(size = 1)
bbnms1

Gráfico de líneas por Nombre

bbnms2<-bbnm %>% ggplot(aes(x=year,y=n, group=name, color=name)) + 
  #Tipo de delineado
  geom_line(size = 1) +
  #Título y nombres de los ejes
  labs(title = 'Popularidad de los Nombres 1880-2017',
       x = 'Años',
       y = 'Número de Bebes') +
  scale_color_viridis_d() +
  #Tema del gráfico
  theme_minimal() + 
  #Separar por nombre(name)
  facet_wrap(~name)
bbnms2

Gráfico de Líneas Interactivo

library(plotly)
bbnms3<-bbnm %>% ggplot(aes(x=year,y=n, color=name)) + 
  geom_line(size = 1) +
  labs(title = 'Popularidad de los Nombres 1880-2017',
       x = 'Años',
       y = 'Número de Bebes') +
  scale_color_viridis_d() +
  theme_minimal()
#Para que el gráfico presente información de la coordenada
ggplotly(bbnms3)

Gráfico de Líneas Interactivo por Nombre

bbnms3<-bbnm %>% ggplot(aes(x=year,y=n, color=name)) + 
  geom_line(size = 1) +
  labs(title = 'Popularidad de los Nombres 1880-2017',
       x = 'Años',
       y = 'Número de Bebes') +
  scale_color_viridis_d() +
  theme_minimal() +
  facet_wrap(~name)
ggplotly(bbnms3)

Gráfico de Líneas Animado

library(gganimate) #USO GRÁFICOS ANIMADOS
bbnms4<-bbnm %>% ggplot(aes(x=year,y=n, group=name, color=name)) + 
  geom_line(size = 1) +
  geom_point(size = 3) +
  labs(title = 'Popularidad de los Nombres en {trunc(frame_along)}',
       x = 'Años',
       y = 'Número de Bebes') +
  scale_color_viridis_d() +
  theme_minimal() +
  #El gráfico avanza de forma animada según la variable año(year) 
  transition_reveal(year)
bbnms4

Gráfico de LÍneas Animado por Nombre

bbnms5<-bbnm %>% ggplot(aes(x=year, y=n, group=name, color=name)) + 
  geom_line(size = 1) +
  geom_point(size = 3) +
  labs(title = 'Popularidad de los Nombres en {trunc(frame_along)}',
       x = 'Años',
       y = 'Número de Bebes') +
  scale_color_viridis_d() +
  theme_minimal() +
  transition_reveal(year) +
  facet_wrap(~name)
bbnms5

Referencias

Datanovia Datanovia https://www.datanovia.com/

Data Carpentry contributors Data visualization with ggplot2 https://datacarpentry.org/R-ecology-lesson/04-visualization-ggplot2.html

En cours de rédaction :

JMU2017 Advanced Data Visualization with ggplot2 https://4va.github.io/biodatasci/r-viz-gapminder.html