Daniela Ballari, 2018
dballari@uazuay.edu.ec



Este es un archivo Notebook de R Markdown, Cuando ejecutas el código con Run o Ctrl+Shift+Enter, el resultado aparecerá debajo del código

Función qplot() de ggplot

Comienza instalando el paquete ggplot2 y cargando la librería

# install.packages("ggplot2")
library(ggplot2)

Revisa la ayuda de qplot() en http://ggplot2.tidyverse.org/reference/qplot.html

qplot(x, y = NULL, data, facets = NULL, margins = FALSE, geom = "auto", xlim = c(NA, NA), ylim = c(NA, NA), main = NULL, xlab = , ylab = , stat = NULL)

Luego utilizaremos el conjunto de datos mtcars para realizar diversos gráficos de exploración. Ggplot trabaja sobre data.frames, por ello asegurate que los datos sean data.frames.

data(mtcars)
class(mtcars)
## [1] "data.frame"
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Histogramas

Al incluir una columna de un data.frame, por defecto se dibujará un histograma

qplot(mpg, data = mtcars)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Incluye el argumento bins para indicar el número de clases del histograma

qplot(mpg, data = mtcars, bins=5)

Aunque está indicado por defecto, puedes igual incluir que el tipo de geometría del gráfico a dibujar sea histograma. El resultado será igual al gráfico anterior.

qplot(mpg, data = mtcars, bins=5, geom = "histogram")

Añade lineas verticales para mostrar la media y la mediana.

 qplot(mpg, data = mtcars, bins=5, geom = "histogram") +
geom_vline(xintercept = mean(mtcars$mpg), color="red")+
geom_vline(xintercept = median(mtcars$mpg), color="blue")

Clasifica el histograma de acuerdo con una segunda variable.

qplot(mpg, data = mtcars, bins=5, geom = "histogram", fill = as.factor(am))

Densidad

Convierte el histrograma en un gráfico de densidad.

qplot(mpg, data = mtcars, bins=5, geom = "density", fill = as.factor(am))
## Warning: Ignoring unknown parameters: bins

Cambia el argumento fill por color para hacer los polígonos vacios.

qplot(mpg, data = mtcars, bins=5, geom = "density", color = as.factor(am))
## Warning: Ignoring unknown parameters: bins

Cambia el tipo de línea de las densidades.

qplot(mpg, data = mtcars, bins=5, geom = "density", color = as.factor(am), linetype= as.factor(am))
## Warning: Ignoring unknown parameters: bins

Separando gráficos

Utiliza el argumento facets para dividir ambos poligonos de densidades en gráficos diferentes. Observa el argumento facets en los dos ejemplos. En el primero se graficarán como columnas y en el segundo como filas

qplot(mpg, data = mtcars, bins=5, geom = "density", color = as.factor(am), facets = .~ am)
## Warning: Ignoring unknown parameters: bins

qplot(mpg, data = mtcars, bins=5, geom = "density", color = as.factor(am), facets =  am ~.)
## Warning: Ignoring unknown parameters: bins

#### Título y nombres de ejes

qplot(mpg, data = mtcars, geom = "density",
      xlab = "galones por millas", ylab = "Densidas", 
      main = "Densidad de galones por millas")

Diagrama de dispersión

Añadiendo dos columnas, mpg como eje x y wt como eje y se dibujará un diagrama de dispersión o scatterplot.

qplot(mpg, wt, data=mtcars)

El argumento color diferencia los puntos de acuerdo con una tercer variable.

qplot(mpg, wt, data=mtcars, color=factor(am))

####Gráfico de puntos vs gráfico de lineas El valor por defecto del argumento geom es point, sin embargo dicho valor puede ser remplazado por line para graficar lineas.

qplot(mpg, wt, data=mtcars, geom=c("point", "line"))

El valor smooth de geom grafica el ajuste y el error estándar de LOESS (locally weighted scatterplot smoothing)

qplot(mpg, wt, data = mtcars, geom = c("point", "smooth"))# standard error
## `geom_smooth()` using method = 'loess'

También es posible realizar el ajuste condicionado por una tercer variable…

qplot(mpg, wt, data = mtcars, color = factor(cyl), geom=c("point", "smooth")) # metodo loess
## `geom_smooth()` using method = 'loess'

…y modificar el método de ajuste para realizar una regresión lineal

qplot(mpg, wt, data = mtcars, color = factor(cyl))+ geom_smooth(method = "lm") # metodo linear modeling, regresion lineal

qplot(mpg, wt, data = mtcars, facets = .~factor(cyl), color = factor(cyl))+ geom_smooth(method = "lm") # metodo linear modeling, regresion lineal

Personalizar gráficos

Los siguientes ejemplos muestran que la variable cyl es continua por lo que, por defecto, se selecciona una escala de color continua. Si queremos asignar una escala discreta, es necesario transformar cly al tipo de dato factor.

qplot(mpg, wt, data = mtcars, colour = cyl)

qplot(mpg, wt, data = mtcars, colour = factor(cyl))

El tamaño y la forma de puntos puede cambiarse acorde a una variable.

qplot(mpg, wt, data = mtcars, size = mpg)

qplot(mpg, wt, data = mtcars, shape = factor(cyl))

Etiquetas para puntos

qplot(mpg, wt, data = mtcars, label = rownames(mtcars), 
      geom=c("point", "text"),
      hjust=0, vjust=0)

Multiples diagramas de dispersión

qplot(mpg, data = mtcars, facets = ~ am, bins=5)

qplot(mpg, wt, data = mtcars, facets =  ~ am)

qplot(mpg, wt, data = mtcars, facets = gear ~ am)

Otro ejemplo con facets puede observarse a continuación

qplot(hp, mpg, data=mtcars, shape=factor(am), color=factor(am),
   facets=gear~cyl, size=I(3),
   xlab="Horsepower", ylab="Miles per Gallon")

Boxplots o diagramas de cajas y bigotes

qplot(factor(am),mpg , data = mtcars, geom="boxplot")

qplot(factor(am),mpg , data = mtcars, geom=c("boxplot", "jitter"))

qplot(factor(am),mpg , data = mtcars, 
      geom=c("boxplot", "jitter"), fill = factor(am))

qplot(factor(am),mpg , data = mtcars, 
      geom = "dotplot", stackdir = "center", binaxis = "y",
      color = factor(am), fill = factor(am))
## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

qplot(factor(am),mpg , data = mtcars, 
      geom = "violin", stackdir = "center", binaxis = "y",
      color = factor(am), fill = factor(am))
## Warning: Ignoring unknown parameters: stackdir, binaxis

Actividad individual 1

Trabaja con los datos data(precip) y crea un histograma.