Graficación Biblioteca Base de R

Estudio R

Septiembre de 2017

Lectura y manipulación inical de datos

DatosMort <- read.csv(file = "MortalidadInfantil.csv",
                      header = TRUE,
                      sep = ",",
                      dec = ".")

Primeras columnas del conjunto de datos:

head(DatosMort, n = 5)
##   Country.code         Country.name X2013 X2012 X2011 X2010 X2009 X2008
## 1          AFG          AFGHANISTAN  97.3 100.0 102.6 105.2 107.7 110.2
## 2          AGO               ANGOLA 167.4 172.6 177.5 182.4 187.7 192.3
## 3          ALB              ALBANIA  14.9  15.4  15.9  16.5  17.2  17.9
## 4          AND              ANDORRA   3.0   3.1   3.2   3.3   3.4   3.5
## 5          ARE UNITED ARAB EMIRATES   8.2   8.5   8.7   8.8   9.0   9.2
##   X2007 X2006 X2005 X2004 X2003 X2002 X2001 X2000 X1999 X1998 X1997 X1996
## 1 112.9 115.8 119.0 122.4 125.9 129.4 132.7 135.6 138.2 140.6 143.0 145.7
## 2 196.8 200.9 204.5 207.1 209.8 212.1 214.5 216.7 218.9 220.8 222.4 223.8
## 3  18.7  19.5  20.4  21.4  22.5  23.6  24.8  26.1  27.5  28.8  30.3  31.7
## 4   3.6   3.7   3.9   4.0   4.1   4.3   4.4   4.6   4.8   5.1   5.4   5.7
## 5   9.4   9.6   9.8  10.0  10.3  10.6  10.9  11.2  11.5  11.8  12.2  12.7
##   X1995 X1994 X1993 X1992 X1991 X1990
## 1 149.1 153.3 158.4 164.6 171.5 179.1
## 2 224.7 225.2 225.5 225.9 225.8 225.9
## 3  33.1  34.5  35.9  37.3  38.8  40.5
## 4   6.0   6.5   6.9   7.4   7.9   8.5
## 5  13.1  13.6  14.2  14.9  15.7  16.5

Estructura de datos:

str(DatosMort)
## 'data.frame':    195 obs. of  26 variables:
##  $ Country.code: Factor w/ 195 levels "AFG","AGO","ALB",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Country.name: Factor w/ 195 levels "AFGHANISTAN",..: 1 5 2 4 185 7 8 6 9 10 ...
##  $ X2013       : num  97.3 167.4 14.9 3 8.2 ...
##  $ X2012       : num  100 172.6 15.4 3.1 8.5 ...
##  $ X2011       : num  102.6 177.5 15.9 3.2 8.7 ...
##  $ X2010       : num  105.2 182.4 16.5 3.3 8.8 ...
##  $ X2009       : num  107.7 187.7 17.2 3.4 9 ...
##  $ X2008       : num  110.2 192.3 17.9 3.5 9.2 ...
##  $ X2007       : num  112.9 196.8 18.7 3.6 9.4 ...
##  $ X2006       : num  115.8 200.9 19.5 3.7 9.6 ...
##  $ X2005       : num  119 204.5 20.4 3.9 9.8 ...
##  $ X2004       : num  122.4 207.1 21.4 4 10 ...
##  $ X2003       : num  125.9 209.8 22.5 4.1 10.3 ...
##  $ X2002       : num  129.4 212.1 23.6 4.3 10.6 ...
##  $ X2001       : num  132.7 214.5 24.8 4.4 10.9 ...
##  $ X2000       : num  135.6 216.7 26.1 4.6 11.2 ...
##  $ X1999       : num  138.2 218.9 27.5 4.8 11.5 ...
##  $ X1998       : num  140.6 220.8 28.8 5.1 11.8 ...
##  $ X1997       : num  143 222.4 30.3 5.4 12.2 ...
##  $ X1996       : num  145.7 223.8 31.7 5.7 12.7 ...
##  $ X1995       : num  149.1 224.7 33.1 6 13.1 ...
##  $ X1994       : num  153.3 225.2 34.5 6.5 13.6 ...
##  $ X1993       : num  158.4 225.5 35.9 6.9 14.2 ...
##  $ X1992       : num  164.6 225.9 37.3 7.4 14.9 ...
##  $ X1991       : num  171.5 225.8 38.8 7.9 15.7 ...
##  $ X1990       : num  179.1 225.9 40.5 8.5 16.5 ...

Cambiando el nombre a las variables:

names(DatosMort) <- c("CódigoPaís", "País", "2013", "2012",
                            "2011", "2010", "2009", "2008", "2007",
                            "2006", "2005", "2004", "2003", "2002",
                            "2001", "2000", "1999", "1998", "1997",
                            "1996", "1995", "1994", "1993", "1992",
                            "1991", "1990")

Conjunto de datos nuevamente:

head(DatosMort, n = 5)
##   CódigoPaís                 País  2013  2012  2011  2010  2009  2008
## 1        AFG          AFGHANISTAN  97.3 100.0 102.6 105.2 107.7 110.2
## 2        AGO               ANGOLA 167.4 172.6 177.5 182.4 187.7 192.3
## 3        ALB              ALBANIA  14.9  15.4  15.9  16.5  17.2  17.9
## 4        AND              ANDORRA   3.0   3.1   3.2   3.3   3.4   3.5
## 5        ARE UNITED ARAB EMIRATES   8.2   8.5   8.7   8.8   9.0   9.2
##    2007  2006  2005  2004  2003  2002  2001  2000  1999  1998  1997  1996
## 1 112.9 115.8 119.0 122.4 125.9 129.4 132.7 135.6 138.2 140.6 143.0 145.7
## 2 196.8 200.9 204.5 207.1 209.8 212.1 214.5 216.7 218.9 220.8 222.4 223.8
## 3  18.7  19.5  20.4  21.4  22.5  23.6  24.8  26.1  27.5  28.8  30.3  31.7
## 4   3.6   3.7   3.9   4.0   4.1   4.3   4.4   4.6   4.8   5.1   5.4   5.7
## 5   9.4   9.6   9.8  10.0  10.3  10.6  10.9  11.2  11.5  11.8  12.2  12.7
##    1995  1994  1993  1992  1991  1990
## 1 149.1 153.3 158.4 164.6 171.5 179.1
## 2 224.7 225.2 225.5 225.9 225.8 225.9
## 3  33.1  34.5  35.9  37.3  38.8  40.5
## 4   6.0   6.5   6.9   7.4   7.9   8.5
## 5  13.1  13.6  14.2  14.9  15.7  16.5

De formato ancho a formato largo

library(tidyr)
DatosMortLargo <- DatosMort %>% 
                      gather(key = Año,
                             value = Mortalidad,
                             -c(CódigoPaís:País))

Nuevo conjunto de datos en formato largo:

head(DatosMortLargo, n = 5)
##   CódigoPaís                 País  Año Mortalidad
## 1        AFG          AFGHANISTAN 2013       97.3
## 2        AGO               ANGOLA 2013      167.4
## 3        ALB              ALBANIA 2013       14.9
## 4        AND              ANDORRA 2013        3.0
## 5        ARE UNITED ARAB EMIRATES 2013        8.2
tail(DatosMortLargo, n = 5)
##      CódigoPaís         País  Año Mortalidad
## 4676        WSM        SAMOA 1990       31.0
## 4677        YEM        YEMEN 1990      124.8
## 4678        ZAF SOUTH AFRICA 1990       61.0
## 4679        ZMB       ZAMBIA 1990      192.5
## 4680        ZWE     ZIMBABWE 1990       74.6

Estructura del conjunto de datos en formato largo:

str(DatosMortLargo)
## 'data.frame':    4680 obs. of  4 variables:
##  $ CódigoPaís: Factor w/ 195 levels "AFG","AGO","ALB",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ País      : Factor w/ 195 levels "AFGHANISTAN",..: 1 5 2 4 185 7 8 6 9 10 ...
##  $ Año       : chr  "2013" "2013" "2013" "2013" ...
##  $ Mortalidad: num  97.3 167.4 14.9 3 8.2 ...

Volver el año un factor:

#library(dplyr)
DatosMortLargo <- DatosMortLargo %>%
                    mutate(Año = factor(Año)) %>%
                    arrange(Año)

De nuevo la estructura del conjunto de datos largo:

str(DatosMortLargo)
## 'data.frame':    4680 obs. of  4 variables:
##  $ CódigoPaís: Factor w/ 195 levels "AFG","AGO","ALB",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ País      : Factor w/ 195 levels "AFGHANISTAN",..: 1 5 2 4 185 7 8 6 9 10 ...
##  $ Año       : Factor w/ 24 levels "1990","1991",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Mortalidad: num  179.1 225.9 40.5 8.5 16.5 ...

Editando la base de datos

Agregando columnas con la descripción de la división y subdivisión territorial, basado en el Geoesquema de las Naciones Unidas.

* América
  + Suramérica
  + Centroamérica
  + Norteamérica
  + Caribe
* Asia
  + Oriental
  + Occidental
  + Central
  + Sudeste
  + Norte
  + Sur
* África
  + Oriental
  + Occidental
  + Central
  + Norte
  + Sur
* Europa
  + Oriental
  + Occidental
  + Central
  + Norte
  + Sur
* Oceania
  + Australasia
  + Micronesia
  + Polinesia
  + Melanesia

Un primer acercamiento:

paises <- c("COLOMBIA", "PERU", "BOLIVIA", "ECUADOR",
            "ARGENTINA", "VENEZUELA", "URUGUAY", "PARAGUAY", "GUYANA",
            "CHILE", "SURINAME", "BRAZIL")

MortSurAme <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Suramérica",
                           División = "América")

Otra forma:

#DatosMort$País
paises <- DatosMortLargo$País[c(22, 42, 72, 74, 112, 128, 137, 157)]
MortCenAme <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Centroamérica",
                           División = "América")
#DatosMort$País
paises <- DatosMortLargo$País[c(30, 185)]
MortNorAme <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Norteamérica",
                           División = "América")
#DatosMort$País
paises <- DatosMortLargo$País[c(8, 19, 25, 43, 48, 50, 71,76, 86, 94,
                                101, 177, 187)]
MortCarAme <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Caribe",
                           División = "América")
#DatosMort$País
paises <- DatosMortLargo$País[149]
MortAsiaN <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Asia del Norte",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(1, 16, 27, 79, 81, 102, 111, 132, 136)]
MortAsiaS <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Asia del Sur",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(33, 88, 95, 119, 143)]
MortAsiaO <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Asia Oriental",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(89, 91, 173, 174, 186)]
MortAsiaC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Asia Central",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(26, 78, 92, 97, 117, 124, 139, 154, 172,
                                175, 189)]
MortAsiaSO <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Sudeste Asiático",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(5, 7, 11, 18, 44, 64, 82, 84, 87, 96, 98,
                                135, 146, 147, 151, 169, 179, 192)]
MortAsiaOC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Asia Occidental",
                           División = "Asia")
#DatosMort$País
paises <- DatosMortLargo$País[c(51, 53, 100, 107, 152, 178)]
MortAfrN <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "África del Norte",
                           División = "África")
#DatosMort$País
paises <- DatosMortLargo$País[c(28, 103, 125, 167, 193)]
MortAfrS <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "África del Sur",
                           División = "África")
#DatosMort$País
paises <- DatosMortLargo$País[c(12, 40, 47, 54, 57, 90, 110, 120, 122,
                                123, 150, 159, 161, 168, 181, 182, 195)]
MortAfrO <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "África Oriental",
                           División = "África")
#DatosMort$País
paises <- DatosMortLargo$País[c(14, 15, 34, 41, 65, 66, 67, 68, 99, 115,
                                121, 126, 127, 153, 156, 171)]
MortAfrOC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "África Occidental",
                           División = "África")
#DatosMort$País
paises <- DatosMortLargo$País[c(2, 29, 35, 36, 37, 62, 69, 162, 170,
                                194)]
MortAfrC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "África Central",
                           División = "África")
#DatosMort$País
paises <- DatosMortLargo$País[c(9, 134)]
MortOceA <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Australia",
                           División = "Oceanía")
#DatosMort$País
paises <- DatosMortLargo$País[c(59, 141, 155, 190)]
MortOceM <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Melanesia",
                           División = "Oceanía")
#DatosMort$País
paises <- DatosMortLargo$País[c(61, 93, 113, 133, 140)]
MortOceMi <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Micronesia",
                           División = "Oceanía")
#DatosMort$País
paises <- DatosMortLargo$País[c(38, 129, 176, 180, 191)]
MortOceP <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Polinesia",
                           División = "Oceanía")
#DatosMort$País
paises <- DatosMortLargo$País[c(49, 56, 58, 63, 80, 83, 104, 106, 131,
                                166)]
MortEurN <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Europa del Norte",
                           División = "Europa")
#DatosMort$País
paises <- DatosMortLargo$País[c(3, 4, 20, 55, 70, 85, 114, 116, 118,
                                144, 158, 160)]
MortEurS <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Europa del Sur",
                           División = "Europa")
#DatosMort$País
paises <- DatosMortLargo$País[c(17, 21, 45, 77, 109, 142, 148, 149,
                                183)]
MortEurO <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Europa Oriental",
                           División = "Europa")
#DatosMort$País
paises <- DatosMortLargo$País[c(13, 31, 60, 105, 108, 130)]
MortEurOC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Europa Occidental",
                           División = "Europa")
#DatosMort$País
paises <- DatosMortLargo$País[c(10, 46, 75, 164, 165)]
MortEurC <- DatosMortLargo %>% 
                    filter(País %in% paises) %>%
                    mutate(Subdivisión = "Europa Central",
                           División = "Europa")

Concatenando información

Bases de datos por país:

MortAfrica <- rbind(MortAfrC, MortAfrN, MortAfrO, MortAfrOC, MortAfrS)
MortAsia <- rbind(MortAsiaC, MortAsiaN, MortAsiaO, MortAsiaOC, MortAsiaS)
MortAmerica <- rbind(MortSurAme, MortNorAme, MortCenAme, MortCarAme)
MortEuropa <- rbind(MortEurS, MortEurOC, MortEurO, MortEurN, MortEurC)
MortOceania <- rbind(MortOceP, MortOceMi, MortOceM, MortOceA)

Base de datos completa:

MortMundo <- rbind(MortAfrica, MortAsia, MortAmerica, MortEuropa,
                   MortOceania)

head(MortMundo, n = 5)
##   CódigoPaís                     País  Año Mortalidad    Subdivisión
## 1        AGO                   ANGOLA 1990      225.9 África Central
## 2        CAF CENTRAL AFRICAN REPUBLIC 1990      176.9 África Central
## 3        CMR                 CAMEROON 1990      136.4 África Central
## 4        COD           CONGO, THE DRC 1990      176.0 África Central
## 5        COG                    CONGO 1990       92.2 África Central
##   División
## 1   África
## 2   África
## 3   África
## 4   África
## 5   África

Estructura de los nuevos datos:

str(MortMundo)
## 'data.frame':    4440 obs. of  6 variables:
##  $ CódigoPaís : Factor w/ 195 levels "AFG","AGO","ALB",..: 2 29 35 36 37 62 69 162 170 194 ...
##  $ País       : Factor w/ 195 levels "AFGHANISTAN",..: 5 33 30 40 39 63 56 151 34 194 ...
##  $ Año        : Factor w/ 24 levels "1990","1991",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Mortalidad : num  225.9 176.9 136.4 176 92.2 ...
##  $ Subdivisión: chr  "África Central" "África Central" "África Central" "África Central" ...
##  $ División   : chr  "África" "África" "África" "África" ...

Reestructurando los datos:

MortMundo <- MortMundo %>%
                    mutate(Subdivisión = factor(Subdivisión),
                           División = factor(División))
str(MortMundo)
## 'data.frame':    4440 obs. of  6 variables:
##  $ CódigoPaís : Factor w/ 195 levels "AFG","AGO","ALB",..: 2 29 35 36 37 62 69 162 170 194 ...
##  $ País       : Factor w/ 195 levels "AFGHANISTAN",..: 5 33 30 40 39 63 56 151 34 194 ...
##  $ Año        : Factor w/ 24 levels "1990","1991",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Mortalidad : num  225.9 176.9 136.4 176 92.2 ...
##  $ Subdivisión: Factor w/ 23 levels "África Central",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ División   : Factor w/ 5 levels "África","América",..: 1 1 1 1 1 1 1 1 1 1 ...

Graficación con biblioteca base

Histograma y densidad

Los datos…

head(MortMundo)
##   CódigoPaís                     País  Año Mortalidad    Subdivisión
## 1        AGO                   ANGOLA 1990      225.9 África Central
## 2        CAF CENTRAL AFRICAN REPUBLIC 1990      176.9 África Central
## 3        CMR                 CAMEROON 1990      136.4 África Central
## 4        COD           CONGO, THE DRC 1990      176.0 África Central
## 5        COG                    CONGO 1990       92.2 África Central
## 6        GAB                    GABON 1990       92.7 África Central
##   División
## 1   África
## 2   África
## 3   África
## 4   África
## 5   África
## 6   África

Histograma de la mortalidad infantil mundial:

hist(MortMundo$Mortalidad)

Editando el histograma:

par(lwd = 3)
hist(MortMundo$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Frecuencia",
     main = "Distribución de la mortalidad infantil 1990-2013",
     xlim = c(0, 300),
     ylim = c(0, 700),
     lwd = 1,
     col = "lightgray",
     lty = 1)

Graficando densidad de la mortalidad infantil:

par(lwd = 2)
plot(density(MortMundo$Mortalidad),
     col = 2,
     lwd = 2,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Densidad de la mortalidad infantil 1990-2013")

Histograma final con densidad:

par(lwd = 3)
hist(MortMundo$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Distribución de la mortalidad infantil 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortMundo$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortMundo$Mortalidad,
    ticksize = 0.03,
    col = "black")

Histogramas con densidad por continente:

par(mfrow = c(2, 3)) 
#
hist(MortMundo$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil mundial 1990-2013",
     lwd = 1,
     col = "darkgreen",
     lty = 1,
     freq = FALSE)
lines(density(MortMundo$Mortalidad),
      col = "orangered",
      lwd = 3,
      lty = 1)
rug(MortMundo$Mortalidad,
    ticksize = 0.03,
    col = "black")

#
hist(MortAfrC$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil en África 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortAfrC$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortAfrC$Mortalidad,
    ticksize = 0.03,
    col = "black")

#
hist(MortAmerica$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil en América 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortAmerica$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortAmerica$Mortalidad,
    ticksize = 0.03,
    col = "black")

#
hist(MortAsia$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil en Asia 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortAsia$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortAsia$Mortalidad,
    ticksize = 0.03,
    col = "black")

#
hist(MortEuropa$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil en Europa 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortEuropa$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortEuropa$Mortalidad,
    ticksize = 0.03,
    col = "black")

#
hist(MortOceania$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil en Oceanía 1990-2013",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortOceania$Mortalidad),
      col = 2,
      lwd = 3,
      lty = 1)
rug(MortOceania$Mortalidad,
    ticksize = 0.03,
    col = "black")

Múltiples histogramas en uno:

#Instalar la biblioteca "scales"
hist(MortAfrica$Mortalidad,
     breaks = 40,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "Mortalidad infantil 1990-2013",
     lwd = 1,
     col = "darkgreen",
     lty = 1,
     freq = FALSE,
     ylim = c(0, 0.06))

hist(MortAsia$Mortalidad,
     breaks = 40,
     lwd = 1,
     col = scales::alpha("purple", 0.9),
     lty = 1,
     freq = FALSE,
     add = TRUE)

hist(MortEuropa$Mortalidad,
     breaks = 40,
     lwd = 1,
     col = scales::alpha("orangered", 0.85),
     lty = 1,
     freq = FALSE,
     add = TRUE)

hist(MortOceania$Mortalidad,
     breaks = 40,
     lwd = 1,
     col = scales::alpha("navy", 0.80),
     lty = 1,
     freq = FALSE,
     add = TRUE)

hist(MortAmerica$Mortalidad,
     breaks = 40,
     lwd = 1,
     col = scales::alpha("red", 0.75),
     lty = 1,
     freq = FALSE,
     add = TRUE)

#Colores y legenda
col1 <- "darkgreen"
col2 <- scales::alpha("purple", 0.9)
col3 <- scales::alpha("orangered", 0.85)
col4 <- scales::alpha("navy", 0.80)
col5 <- scales::alpha("red", 0.75)

legend("topright",
       c("África", "Asia", "Europa", "Oceanía", "América"),
       fill = c(col1, col2, col3, col4, col5),
       bty = "n",
       border = NA,
       cex = 1)

Líneas y símbolos en R

Símbolos en R (pch):

Líneas en R (lty):

Algunos parámetros gráficos en R:

Colores en R:

Aquí hay una guía de colores en R.

Boxplot

Boxplot inicial:

boxplot(MortMundo$Mortalidad)

Editanto el Boxplot:

par(lwd = 2,
    col = "black",
    lty = 1)

boxplot(Mortalidad ~ División,
        data = MortMundo,
        xlab = "División territorial",
        ylab = "Mortalidad",
        main = "Boxplot mortalidad infantil mundial 1990-2013",
        col = rainbow(5),
        cex = 1,
        boxwex = 0.6,
        whisklty = 1)

Ordenando Boxplot:

Orden <- with(MortMundo,
              reorder(División, Mortalidad, FUN = median, na.rm=T))

par(lwd = 2)
boxplot(Mortalidad ~ Orden,
        data = MortMundo,
        xlab = "División territorial",
        ylab = "Mortalidad",
        main = "Mortalidad infantil por división territorial 1990-2013",
        col = rainbow(5),
        cex = 1,
        boxwex = 0.6,
        whisklty = 1)

Mortalidad infantil a través de los años:

par(lwd = 2)
boxplot(Mortalidad ~ Año,
        data = MortMundo,
        xlab = "Año",
        ylab = "Mortalidad",
        main = "Mortalidad infantil 1990-2013",
        col = rainbow(24),
        cex = 1,
        boxwex = 0.6,
        whisklty = 1,
        las = 2)

Mortalidad infantil por subdivisión territorial:

Orden2 <- with(MortMundo,
              reorder(Subdivisión, Mortalidad, FUN = mean, na.rm=T))

op <- par(no.readonly = TRUE)
par(oma = op$oma + c(3, 0, 0, 0),
      cex.axis = 1,
      cex.lab = 1.5,
      lwd = 2)

boxplot(Mortalidad ~ Orden2,
        data = MortMundo,
        ylab = "Mortalidad",
        main = "Mortalidad infantil mundial 1990-2013",
        col = rainbow(24),
        cex = 1,
        boxwex = 0.6,
        whisklty = 1,
        las = 2,
        cex.labels = 6)
abline(h = mean(MortMundo$Mortalidad),
       col = "forestgreen",
       lty = "dashed",
       lwd = 3)

Histograma, densidad y boxplot

# Dividiendo la pantalla gráfica
layout(mat = matrix(c(1, 2), 2, 1, byrow = TRUE),
       height = c(1, 4))

#
par(mar = c(0, 3.1, 1.1, 2.1),
    lwd = 2)
boxplot(MortMundo$Mortalidad,
        horizontal = TRUE,
        main = "Distribución de la mortalidad infantil 1990-2013",
        xaxt = "n",
        col = "forestgreen",
        frame = FALSE)
#
par(mar = c(4, 4.1, 1.1, 2.1),
    lwd = 2)
hist(MortMundo$Mortalidad,
     breaks = 100,
     xlab = "Mortalidad",
     ylab = "Densidad",
     main = "",
     lwd = 1,
     col = "lightgray",
     lty = 1,
     freq = FALSE)
lines(density(MortMundo$Mortalidad),
      col = "forestgreen",
      lwd = 3,
      lty = 1)
rug(MortMundo$Mortalidad,
    ticksize = 0.03,
    col = "black")

Diagrama de barras

Organizando la información a graficar:

MortProA <- MortMundo %>%
                  group_by(Año) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad)) %>%
                  mutate(Año = as.character(Año))

MortProP <- MortMundo %>%
                  group_by(País) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad))

MortProD <- MortMundo %>%
                  group_by(División) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad)) %>%
                  arrange(-Promedio)

MortProS <- MortMundo %>%
                  group_by(Subdivisión) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad)) %>%
                  arrange(-Promedio)

MortProDA <- MortMundo %>%
                  group_by(División, Año) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad))%>%
                  mutate(Año = as.character(Año))

MortProSA <- MortMundo %>%
                  group_by(Subdivisión, Año) %>%
                  summarise(Promedio = mean(Mortalidad),
                            Desvio = sd(Mortalidad))%>%
                  mutate(Año = as.character(Año))

Mortalidad infantil promedio a través del tiempo:

head(MortProA, n = 5)
## # A tibble: 5 x 3
##     Año Promedio   Desvio
##   <chr>    <dbl>    <dbl>
## 1  1990 71.60919 69.54436
## 2  1991 70.17622 68.67054
## 3  1992 68.86378 67.78993
## 4  1993 67.64595 66.94930
## 5  1994 66.93568 67.42228
barplot(MortProA$Promedio,
        names = MortProA$Año,
        col = rainbow(24, s = 0.9, v = 0.5, start = 0, end = 0.9),
        las = 2,
        xlab = "Año",
        ylab = "Mortalidad",
        main = "Mortalidad infantil promedio 1990-2013")

Mortalidad infantil promedio por divisiones territoriales:

op <- par(no.readonly = TRUE)
par(oma = op$oma + c(3, 1, 0, 0),
      cex.axis = 1,
      cex.lab = 1.5,
      lwd = 2)

barplot(MortProD$Promedio,
        names = MortProD$División,
        col = rainbow(22, s = 0.9, v = 0.5, start = 0, end = 0.9),
        las = 1,
        ylab = "Mortalidad",
        main = "Mortalidad infantil promedio 1990-2013",
        ylim = c(0, 160))

Mortalidad infantil promedio por subdivisiones territoriales:

op <- par(no.readonly = TRUE)
par(oma = op$oma + c(3, 0.5, 0, 0),
      cex.axis = 1,
      cex.lab = 1.5,
      lwd = 2)

barplot(MortProS$Promedio,
        names = MortProS$Subdivisión,
        col = rainbow(22, s = 0.9, v = 0.5, start = 0, end = 0.9),
        las = 2,
        ylab = "Mortalidad",
        main = "Mortalidad infantil promedio 1990-2013",
        ylim = c(0, 160))

abline(h = mean(MortMundo$Mortalidad),
       col = "darkorange",
       lty = "dashed",
       lwd = 3)

Diagrama de dispersión (datos iris)

Lectura de base de datos iris:

head(iris, n = 5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa

Gráfico inicial:

plot(iris$Sepal.Length, iris$Petal.Length)

Editando el gráfico:

plot(x = iris$Sepal.Length,
     y = iris$Petal.Length,
     col = iris$Species,
     pch = 19,
     xlab = "Largo de sépalo",
     ylab = "Largo de pétalo",
     main = "Relación largo de sépalo - largo de pétalo",
     cex = 1.5)

legend(x = 4.5,
       y = 7,
       legend = levels(iris$Species),
       col = c(1:3),
       pch = 19)

Matriz de dispersión:

pairs(iris[, 1:4],
      bg = iris$Species,
      pch = 21,
      cex = 1.5,
      main = "Matriz de dispersión")

Otra forma de graficar la matriz de dispersión:

#Instalar biblioteca "psych"
pairs.panels(iris[,-5],
             bg = c(1:3)[iris$Species],
             hist.col = "forestgreen",
             density = TRUE,
             main = "Matriz de dispersión y correlación")