+ - 0:00:00
Notes for current slide
Notes for next slide


Programación y manejo de datos con R (Slides 06-C)

Gráficos con ggplot2 (C): Tipos de gráficos


Pedro J. Pérez



e-mail: pedro.j.perez@uv.es

1 / 10

6. Distintos tipos de gráficos


Mientrás entendiamos el funcionamiento de ggplot2 nos centramos en un sólo tipo de gráfico: los gráficos de puntos.

Ahora veremos distintos tipos de gráficos: histogramas, scatter plots, gráficos de cajas, de barras, de lineas etc... etc...

2 / 10
Galerías con ejemplos

En estas slides presentaremos ejemplos de algunos de los gráficos más utilizados en el análisis de datos. Puedes ver listados más completos en:


Evidentemente, el tipo de grafico se ha de elegir en función de la información que se quiere mostrar. [Aquí] puedes encontrar ayuda para elegir el tipo de grafico. Por ejemplo:

[From Data to Viz], [The Data Visualisation Catalogue], [The chart chooser], [The Chart Chooser Dissected], [The Chart Chooser: Interactive Version], etc ...

3 / 10

6.1 Histogramas


Se utilizan para mostrar la distribución de UNA variable continua, por ejemplo la longitud del sépalo (Sepal.Length).


4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length))

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)")

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)") +
geom_histogram(bins = 40) + labs(title = "40 intervalos")

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)") +
geom_histogram(bins = 40) + labs(title = "40 intervalos") +
geom_histogram(binwidth = 0.5) + labs(title = "En lugar de elegir el nº de intervalos, \n se puede elegir la anchura del intervalo: \n binwidth = 0.5")

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)") +
geom_histogram(bins = 40) + labs(title = "40 intervalos") +
geom_histogram(binwidth = 0.5) + labs(title = "En lugar de elegir el nº de intervalos, \n se puede elegir la anchura del intervalo: \n binwidth = 0.5") +
geom_histogram(binwidth = 0.5,
color = "black",
fill = "tomato") + labs(title = "binwidth = 0.5, color = black, fill = tomato")

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)") +
geom_histogram(bins = 40) + labs(title = "40 intervalos") +
geom_histogram(binwidth = 0.5) + labs(title = "En lugar de elegir el nº de intervalos, \n se puede elegir la anchura del intervalo: \n binwidth = 0.5") +
geom_histogram(binwidth = 0.5,
color = "black",
fill = "tomato") + labs(title = "binwidth = 0.5, color = black, fill = tomato") +
geom_histogram(binwidth = 0.5,
aes(fill = Species),
color = "black") + labs(title = "binwidth = 0.5, color = black, aes(fill = Species)")

4 / 10
6.1 Histogramas con geom_histogram()
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(bins = 60) + labs(title = "60 intervalos (o bins)") +
geom_histogram(bins = 40) + labs(title = "40 intervalos") +
geom_histogram(binwidth = 0.5) + labs(title = "En lugar de elegir el nº de intervalos, \n se puede elegir la anchura del intervalo: \n binwidth = 0.5") +
geom_histogram(binwidth = 0.5,
color = "black",
fill = "tomato") + labs(title = "binwidth = 0.5, color = black, fill = tomato") +
geom_histogram(binwidth = 0.5,
aes(fill = Species),
color = "black") + labs(title = "binwidth = 0.5, color = black, aes(fill = Species)") +
facet_grid(cols = vars(Species))

4 / 10
6.1 geom_density() y Joy Division plots
ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_density(alpha = 0.5)
ggplot(iris, aes(x = Sepal.Length, y = Species)) +
ggridges::geom_density_ridges(aes(fill = Species), alpha = 0.5)

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length))

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot()

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_boxplot(aes(fill = Species),
outlier.colour = "purple")

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_boxplot(aes(fill = Species),
outlier.colour = "purple") +
geom_jitter(width = 0.15, alpha = 1/4, color = "tomato")

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_boxplot(aes(fill = Species),
outlier.colour = "purple") +
geom_jitter(width = 0.15, alpha = 1/4, color = "tomato") +
stat_summary(fun = "mean", geom = "point", color = "purple", size = 2.5)

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_boxplot(aes(fill = Species),
outlier.colour = "purple") +
geom_jitter(width = 0.15, alpha = 1/4, color = "tomato") +
stat_summary(fun = "mean", geom = "point", color = "purple", size = 2.5) +
geom_violin(aes(fill = Species), alpha = 0.6)

5 / 10
6.3 Gráficos de caja (Boxplots)
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_boxplot(aes(fill = Species),
outlier.colour = "purple") +
geom_jitter(width = 0.15, alpha = 1/4, color = "tomato") +
stat_summary(fun = "mean", geom = "point", color = "purple", size = 2.5) +
geom_violin(aes(fill = Species), alpha = 0.6) +
coord_flip()

5 / 10
6.4 Gráficos de barras
ggplot(mpg, aes(class))

5 / 10
6.4 Gráficos de barras
ggplot(mpg, aes(class)) +
geom_bar()

5 / 10
6.4 Gráficos de barras
ggplot(mpg, aes(class)) +
geom_bar() +
geom_bar(fill = "steelblue")

5 / 10
6.4 Gráficos de barras
ggplot(mpg, aes(class)) +
geom_bar() +
geom_bar(fill = "steelblue") +
coord_flip()

5 / 10
6.4 Gráficos de barras
ggplot(mpg, aes(class)) +
geom_bar() +
geom_bar(fill = "steelblue") +
coord_flip() +
geom_bar(aes(forcats::fct_rev(forcats::fct_infreq(class))),
fill = "steelblue")

5 / 10
6.4 Gráficos de barras: distintas posiciones para las barras

Para esta subsección utilizaremos el data.frame mtcars

p <- ggplot(mtcars, aes(factor(cyl), fill = factor(vs)))
p + geom_bar()
p + geom_bar(position = "fill")
p + geom_bar(position = "dodge")
p + geom_bar(position = position_dodge2(preserve = "single"))

6 / 10

9. Gráficos interactivos


Permiten al usuario interactuar con el gráfico, abriéndose posibilidades como: zooming, highlight, o mostrar información adicional al pinchar en algún elemento del gráfico, etc …

7 / 10
9. Gráficos interactivos
  • Los gráficos interactivos permiten al usuario interactuar con el gráfico.

  • En general, JavaScript (JS) es el lenguaje utilizado para hacer gráficos interactivos con librerías como D3, Chart, Plotly, Vis Highcharts, …

  • Recientemente, el paquete de R htmlwidgets ha facilitado el uso de las librerías de JS en R.

  • Actualmente, paquetes de R, como leaflet, DT, dygraphs, networkD3 y muchos otros, utilizan el framework propuesto por htmlwidgets para hacer disponibles los gráficos interactivos de JS en R. [Aquí] puede ver los pkgs que usar htmlwidgets

  • [Aquí] puedes ver una galería con ejemplos.

8 / 10
9. Gráficos interactivos (plotly)
library(plotly)
p <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) + geom_point() + geom_smooth()
ggplotly(p)
5678246
SpeciessetosaversicolorvirginicaSepal.LengthPetal.Length
9 / 10
9. Gráficos interactivos (plotly)
p1 <- p + facet_grid(cols = vars(Species))
ggplotly(p1)
567824656785678
SpeciessetosaversicolorvirginicaSepal.LengthPetal.Lengthsetosaversicolorvirginica
10 / 10

6. Distintos tipos de gráficos


Mientrás entendiamos el funcionamiento de ggplot2 nos centramos en un sólo tipo de gráfico: los gráficos de puntos.

Ahora veremos distintos tipos de gráficos: histogramas, scatter plots, gráficos de cajas, de barras, de lineas etc... etc...

2 / 10
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
oTile View: Overview of Slides
sToggle scribble toolbox
Alt + fFit Slides to Screen
Esc Back to slideshow