R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

library(ggplot2)
## Registered S3 methods overwritten by 'ggplot2':
##   method         from 
##   [.quosures     rlang
##   c.quosures     rlang
##   print.quosures rlang

Usamos el dataset por defecto mpg

df <- mpg
head(df)
## # A tibble: 6 x 11
##   manufacturer model displ  year   cyl trans  drv     cty   hwy fl    class
##   <chr>        <chr> <dbl> <int> <int> <chr>  <chr> <int> <int> <chr> <chr>
## 1 audi         a4      1.8  1999     4 auto(~ f        18    29 p     comp~
## 2 audi         a4      1.8  1999     4 manua~ f        21    29 p     comp~
## 3 audi         a4      2    2008     4 manua~ f        20    31 p     comp~
## 4 audi         a4      2    2008     4 auto(~ f        21    30 p     comp~
## 5 audi         a4      2.8  1999     6 auto(~ f        16    26 p     comp~
## 6 audi         a4      2.8  1999     6 manua~ f        18    26 p     comp~

Echamos un vistazo a las variables del dataset.

str(df)
## Classes 'tbl_df', 'tbl' and 'data.frame':    234 obs. of  11 variables:
##  $ manufacturer: chr  "audi" "audi" "audi" "audi" ...
##  $ model       : chr  "a4" "a4" "a4" "a4" ...
##  $ displ       : num  1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
##  $ year        : int  1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
##  $ cyl         : int  4 4 4 4 6 6 6 4 4 4 ...
##  $ trans       : chr  "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
##  $ drv         : chr  "f" "f" "f" "f" ...
##  $ cty         : int  18 21 20 21 16 18 18 18 16 20 ...
##  $ hwy         : int  29 29 31 30 26 26 27 26 25 28 ...
##  $ fl          : chr  "p" "p" "p" "p" ...
##  $ class       : chr  "compact" "compact" "compact" "compact" ...

Creamos la sintaxis base para crear un gráfico con ggplot2. Vamos a usar la variable class para crear un gráfico de barras.

pl <- ggplot(df, aes(x=class))

Añadimos el comando geom_bar(). La diferencia entre usar geom_bar() o geom_hist() es que para el primero se usan variables categóricas y para un histograma se suelen usar variables discretas.

pl + geom_bar()

Al igual que en el caso del scatterplot, podemos rellenar las barras en función de otra variable. Tomamos la variable drv.

pl + geom_bar(aes(fill=factor(drv)))

Si en lugar de usar la variable en fill la usamos en col, el gráfico crea los bordes mostrando la cantidad de cada factor en cada barra.

pl + geom_bar(aes(col=factor(drv)))

Existen diferentes posiciones para colocar las barras. Veamos unos ejemplos.

pl + geom_bar(aes(fill=factor(drv)), position="dodge")

En este caso, dodge nos permite contar individualmente el número de coches según su tipo y drv.

pl + geom_bar(aes(fill=factor(drv)), position="stack")

Como podemos observar, stack es el que viene por defecto.

pl + geom_bar(aes(fill=factor(drv)), position="fill")

En este caso nos muestra el porcentaje de cada coche en función de su drv.