Jornada de Iniciación Científica - Centro Regional de Chiriquí


Tema 6: Gráficos en R - Lineas


Los gráficos de líneas se utilizan para mostrar valores cuantitativos durante un intervalo o período de tiempo continuo. Un gráfico de líneas se utiliza con mayor frecuencia para mostrar tendencias y analizar cómo han cambiado los datos a lo largo del tiempo.

Los gráficos de líneas se dibujan trazando primero los puntos de datos en una cuadrícula de coordenadas cartesianas y luego conectando una línea entre todos estos puntos. .

#cargar librerias ggplot
#-----------------------------------------
library(ggplot2)

# leer datos de SchoolsMiamiDade
data_cases_tiroides<- read.csv("data_cases_tiroides.csv", 
                 header = TRUE,
                 sep = ";")

head(data_cases_tiroides,5)

Significado de las variables del dataframe data_cases_tiroides

Year : año de
cases : casos de estudio
Rate : número de frecuencia

Crear gráfico de línea en R

El Gráfico de linea se puede realizar utilizando dos variables, relacionada con el intervalo o tiempo y la variable cuantitativa. Para crearlo en GGPLOT se utiliza la geometría geom_line().

str(data_cases_tiroides)
## 'data.frame':    76 obs. of  3 variables:
##  $ year : int  1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 ...
##  $ cases: chr  "NewCases" "NewCases" "NewCases" "NewCases" ...
##  $ rate : num  4.8 4.8 5.4 5.1 4.5 4.3 4.4 4.6 4.7 4.8 ...
 ggplot(data_cases_tiroides, aes(year,rate)) +
   geom_line()


Al mostrar el grafico se muestra un grafico que no se puede interpretar, estos se debe a que se están graficando todos los casos de el dataframe, sin embargo existe una variable categorica cases con dos valores, le cual vamos a colocar en la estetica utilizando group=cases.

str(data_cases_tiroides)
## 'data.frame':    76 obs. of  3 variables:
##  $ year : int  1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 ...
##  $ cases: chr  "NewCases" "NewCases" "NewCases" "NewCases" ...
##  $ rate : num  4.8 4.8 5.4 5.1 4.5 4.3 4.4 4.6 4.7 4.8 ...
 ggplot(data_cases_tiroides, aes(year,rate, group=cases)) +
   geom_line()


Para modificar el color de cada grafico utilizaremos la propiedad color y la misma variable categorica color=case.

str(data_cases_tiroides)
## 'data.frame':    76 obs. of  3 variables:
##  $ year : int  1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 ...
##  $ cases: chr  "NewCases" "NewCases" "NewCases" "NewCases" ...
##  $ rate : num  4.8 4.8 5.4 5.1 4.5 4.3 4.4 4.6 4.7 4.8 ...
 ggplot(data_cases_tiroides, aes(year,rate, group=cases,color=cases)) +
   geom_line()


Se le añade un espesor a la line en la geometria utilizando size=1.

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)


Añadimos una geometría de puntos al gráfico de lineas con geom_point().
A la geometría de punto le colocamos color, tamaño y forma (shape), la forma tiene diferentes valores de 1 al 25, pero si utilizas los valores menores o iguales a 20 algunos de los componentes de la practica no se mostrarán, en este caso la forma 21 es un círculo con relleno.

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))


Modificamos las etiquetas de los datos de la leyenda con scale_fill_manual.
En este caso el color esta dado por dos valores, asi que le decimos a GGPLOT que los dos grupos de valores serán: labels = c(“Muertos”, “Nuevos Casos”) para los textos de la leyenda y para los colores de las líneas y circulos c(“red”, “blue”)</b.> Ahora se mostrarán dos leyendas de “color” y “fill”, por lo que debemos eliminar una de las dos.

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))+
  scale_fill_manual(labels = c("Muertos", "Nuevos Casos"), values = c("red", "blue"))


Eliminamos una de las leyendas con color = FALSE y modificamos el título de la leyenda que dejamos con fill = guide_legend(“Casos”).

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))+
  scale_fill_manual(labels = c("Muertos", "Nuevos Casos"), values = c("red", "blue"))+
  guides(color = FALSE, fill = guide_legend("Casos")) 


Añadimos título al gráfico, etiquetas a las coordenadas, texto de la fuente de datos y valores en los puntos.

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))+
  scale_fill_manual(labels = c("Muertos", "Nuevos Casos"), values = c("red", "blue"))+
  guides(color = FALSE, fill = guide_legend("Casos")) +
  labs(title="Detección del cáncer de tiroides en EE. UU. entre los años 1975 y 2012",
         subtitle="Nivel de casos nuevos y mortandad", 
         caption="fuente: C. I. Bliss (1952) The Statistics of Bioassay. Academic Press.", 
         y="Números de nuevos casos\n por 100,000 habitantes", 
         x="Años")+
  geom_text(aes(label =  rate), nudge_y = 0.65, size=2, color="#2e282b") 

Añadir Themes a los graficos en ggplot

Podemos personalizar el gráfico utilizando algunos de los temas de ggplot.
en este ejemplo theme_light().

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))+
  scale_fill_manual(labels = c("Muertos", "Nuevos Casos"), values = c("red", "blue"))+
  guides(color = FALSE, fill = guide_legend("Casos")) +
  labs(title="Detección del cáncer de tiroides en EE. UU. entre los años 1975 y 2012",
         subtitle="Nivel de casos nuevos y mortandad", 
         caption="fuente: C. I. Bliss (1952) The Statistics of Bioassay. Academic Press.", 
         y="Números de nuevos casos\n por 100,000 habitantes", 
         x="Años")+
  theme_light()


Podemos utilizar otro tema como theme_classic()

ggplot(data_cases_tiroides, aes(year, rate, group=cases, color=cases)) +
    geom_line(size=1)+
    geom_point(size=3, shape=21, aes(color=cases, fill=cases))+
  scale_fill_manual(labels = c("Muertos", "Nuevos Casos"), values = c("red", "blue"))+
  guides(color = FALSE, fill = guide_legend("Casos")) +
  labs(title="Detección del cáncer de tiroides en EE. UU. entre los años 1975 y 2012",
         subtitle="Nivel de casos nuevos y mortandad", 
         caption="fuente: C. I. Bliss (1952) The Statistics of Bioassay. Academic Press.", 
         y="Números de nuevos casos\n por 100,000 habitantes", 
         x="Años")+
  theme_classic()

table(data_cases_tiroides$cases)
## 
## Deaths_US  NewCases 
##        38        38

PRACTICA 1

Genere dos gráfico de líneas uno para cada caso de la variable CASES. Para ello debe hacer dos subgrupo filtrado por cases = =Deaths_US y cases == NewCases , utilizar cun subgrupo en cada gráfico.

PRACTICA 2

Cree un gráfico de los casos igual al mostrado en este documento, modificando , el color , la forma de los puntos y seleccionando otro theme.
¿Que puede interpretar del gráfico?