Visualización de datos en R | Guía para la visualización de datos en R

Contenidos

Echemos un vistazo a este gráfico por un segundo,

entrepreneurs_journey-8698540

Esta visualización (creada originalmente con Tableau) es un gran ejemplo de cómo la visualización de datos puede ayudar a los tomadores de decisiones. Imagínese decirle esta información a un inversor a través de una tabla. ¿Cuánto tiempo crees que tardarás en explicárselo?

Con un volumen de datos cada vez mayor en el mundo actual, es imposible contar historias sin estas visualizaciones. Si bien existen herramientas dedicadas como Tableau, QlikView y d3.js, nada puede reemplazar las herramientas de modelado / estadísticas con una buena capacidad de visualización. Ayuda enormemente a realizar cualquier análisis de datos exploratorio, así como a la ingeniería de funciones. Aquí es donde R ofrece una ayuda increíble.

R Programming ofrece un conjunto satisfactorio de funciones y bibliotecas integradas (como ggplot2, folleto, celosía) para crear visualizaciones y presentar datos. En este artículo, he cubierto los pasos para crear visualizaciones comunes y avanzadas en R Programming. Pero, antes de llegar a ellos, veamos rápidamente la breve historia de la visualización de datos. Si no está interesado en la historia, puede pasar de forma segura a la siguiente sección.

Breve historia de la visualización de datos:

Históricamente, la visualización de datos ha evolucionado gracias al trabajo de destacados profesionales. El fundador de los métodos gráficos en estadística es William Playfair. William Playfair inventó cuatro tipos de gráficos: el gráfico de líneas, el gráfico de barras de datos económicos, el gráfico circular y el gráfico circular. Joseph Priestly había creado la innovación de los primeros gráficos de línea de tiempo, en los que se usaban barras individuales para visualizar la vida útil de una persona (1765). Así es, ¡las líneas de tiempo fueron inventadas hace 250 años y no por Facebook!

Entre las visualizaciones de datos tempranas más famosas se encuentra la Marcha de Napoleón, tal como la describe Charles Minard. La visualización de datos incluye una amplia información sobre el efecto de la temperatura en la invasión de Rusia por parte de Napoleón junto con escalas de tiempo. El gráfico destaca por su representación en dos dimensiones de seis tipos de datos: el número de tropas de Napoleón; distancia; temperatura; la latitud y longitud; dirección de viaje; y ubicación relativa a fechas específicas

Florence Nightangle también fue pionera en la visualización de datos. Dibujó gráficos de Coxcomb para representar el efecto de la enfermedad en la mortalidad de las tropas (1858). El uso de mapas en gráficos o análisis espacial fue iniciado por John Snow (¡no de Game of Thrones!). Era un mapa de las muertes por un brote de cólera en Londres, 1854, en relación con la ubicación de las bombas de agua públicas y ayudó a identificar el brote en una sola bomba.

Visualización de datos en R:

En este artículo, crearemos las siguientes visualizaciones:

Visualización básica

  1. Histograma
  2. Gráfico de barras / líneas
  3. Diagrama de caja
  4. Gráfico de dispersión

Visualización avanzada

  1. Mapa de calor
  2. Mapa de mosaico
  3. Visualización de mapas
  4. Gráficos 3D
  5. Correlograma

Consejo R: los HistData El paquete proporciona una colección de pequeños conjuntos de datos que son interesantes e importantes en la historia de las estadísticas y la visualización de datos.

graphic-3121261

VISUALIZACIONES BÁSICAS

Notas rápidas:

  1. Los gráficos básicos en R se pueden crear con bastante facilidad. los trama comando es el comando a tener en cuenta.
  2. Toma muchos parámetros de datos del eje x, datos del eje y, etiquetas del eje x, etiquetas del eje y, color y título. Para crear gráficos de líneas, simplemente use el parámetro, escriba = l.
  3. Si desea un diagrama de caja, puede utilizar la palabra diagrama de caja y, para diagrama de barras, utilice la función de diagrama de barras.

1. Histograma

El histograma es básicamente un gráfico que divide los datos en contenedores (o rupturas) y muestra la distribución de frecuencia de estos contenedores. También puede cambiar las pausas y ver el efecto que tiene la visualización de datos en términos de comprensibilidad.

Dejame darte un ejemplo.

Nota: Hemos utilizado el comando par (mfrow = c (2,5)) para ajustar varios gráficos en la misma página en aras de la claridad (consulte el código a continuación).

Los siguientes comandos muestran esto de una mejor manera. En el siguiente código, el principal La opción establece el título del gráfico y la columna opción llama en la paleta de colores de RColorBrewer para establecer los colores.

library(RColorBrewer)
data(VADeaths)
par(mfrow=c(2,3))
hist(VADeaths,breaks=10, col=brewer.pal(3,"Set3"),main="Set3 3 colors")
hist(VADeaths,breaks=3 ,col=brewer.pal(3,"Set2"),main="Set2 3 colors")
hist(VADeaths,breaks=7, col=brewer.pal(3,"Set1"),main="Set1 3 colors")
hist(VADeaths,,breaks= 2, col=brewer.pal(8,"Set3"),main="Set3 8 colors")
hist(VADeaths,col=brewer.pal(8,"Greys"),main="Greys 8 colors")
hist(VADeaths,col=brewer.pal(8,"Greens"),main="Greens 8 colors")

 rplot-5560610

Observe que si el número de roturas es menor que el número de colores especificado, los colores simplemente van a valores extremos como en el gráfico «Establecer 3 8 colores». Si el número de cortes es mayor que el número de colores, los colores comienzan a repetirse como en la primera fila.

2. Gráfico de barras / líneas

Gráfico de linea

A continuación se muestra el gráfico de líneas que muestra el aumento de pasajeros aéreos durante un período de tiempo determinado. Los gráficos de líneas son comúnmente preferidos cuando vamos a analizar una tendencia que se extiende a lo largo de un período de tiempo. Además, el gráfico de líneas también es adecuado para gráficos en los que necesitamos comparar cambios relativos en cantidades a través de alguna variable (como el tiempo). A continuación se muestra el código:

plot(AirPassengers,type="l")  #Simple Line Plot

rplot01-6565176

Gráfico de barras

Los gráficos de barras son adecuados para mostrar la comparación entre los totales acumulados de varios grupos. Los gráficos apilados se utilizan para gráficos de barras para varias categorías. Aquí está el código:

barplot(iris$Petal.Length) #Creating simple Bar Graph
barplot(iris$Sepal.Length,col  = brewer.pal(3,"Set1"))
barplot(table(iris$Species,iris$Sepal.Length),col  = brewer.pal(3,"Set1")) #Stacked Plot

rplot04-6257828

3. Diagrama de caja (incluida la opción de agrupar)

El diagrama de caja muestra 5 números estadísticamente significativos: el mínimo, el percentil 25, la mediana, el percentil 75 y el máximo. Por lo tanto, es útil para visualizar la extensión de los datos y derivar inferencias en consecuencia. Aquí está el código básico:

boxplot(iris$Petal.Length~iris$Species) #Creating Box Plot between two variable

Entendamos el código a continuación:

En el siguiente ejemplo, hice 4 gráficos en una pantalla. Al usar el signo ~, puedo visualizar cómo es la propagación (de la longitud del sépalo) en varias categorías (de especies). En los dos últimos gráficos he mostrado el ejemplo de paletas de colores. Una paleta de colores es un grupo de colores que se utiliza para hacer que el gráfico sea más atractivo y ayudar a crear distinciones visuales en los datos.

data(iris)
par(mfrow=c(2,2))
boxplot(iris$Sepal.Length,col="red")
boxplot(iris$Sepal.Length~iris$Species,col="red")
oxplot(iris$Sepal.Length~iris$Species,col=heat.colors(3))
boxplot(iris$Sepal.Length~iris$Species,col=topo.colors(3))

rplot03-9857722

Para obtener más información sobre el uso de paletas de colores en R, visitar aquí.

4. Gráfico de dispersión (incluido 3D y otras características)

Los diagramas de dispersión ayudan a visualizar datos fácilmente y para una inspección de datos simple. Aquí está el código para el diagrama de dispersión simple y multivariado:

plot(x=iris$Petal.Length) #Simple Scatter Plot
plot(x=iris$Petal.Length,y=iris$Species) #Multivariate Scatter Plot

rplot06-9303955

Scatter Plot Matrix puede ayudar a visualizar múltiples variables entre sí.

plot(iris,col=brewer.pal(3,"Set1"))

rplot05-6894402

Quizás esté pensando que no he incluido gráficos circulares en la lista de gráficos básicos. Eso es intencional, no se pierda. Esto se debe a que los profesionales de visualización de datos desaprueban el uso de gráficos circulares para representar datos. Esto se debe a que el ojo humano no puede visualizar distancias circulares con tanta precisión como la distancia lineal. En pocas palabras, cualquier cosa que se pueda poner en un gráfico circular se representa mejor como un gráfico lineal. Sin embargo, si te gusta el gráfico circular, usa:

 pie(table(iris$Species))

Aquí hay una lista completa de todos los gráficos que hemos aprendido hasta aquí:

lastone-7383618

Es posible que haya notado que en algunos de los gráficos, sus títulos se han truncado porque coloqué demasiados gráficos en la misma pantalla. Para cambiar eso, simplemente puede cambiar el parámetro ‘mfrow’ para el par.

Visualizaciones avanzadas

¿Qué es Hexbin Binning?

Podemos usar el paquete hexbin en caso de que tengamos varios puntos en el mismo lugar (overplotting). El agrupamiento hexagonal es una forma de histograma bivariado útil para visualizar la estructura en conjuntos de datos con n grande. Aquí está el código:

>library(hexbin)
>a=hexbin(diamonds$price,diamonds$carat,xbins=40)
>library(RColorBrewer)
>plot(a)

rplot08-9685596

También podemos crear una paleta de colores y luego usar la función de trazado de hexbin para un mejor efecto visual. Aquí está el código:

>library(RColorBrewer)
>rf <- colorRampPalette(rev(brewer.pal(40,'Set3')))
>hexbinplot(diamonds$price~diamonds$carat, data=diamonds, colramp=rf)

rplot09-2310346

Parcela de mosaico

Se puede usar un diagrama de mosaico para trazar datos categóricos de manera muy efectiva con el área de los datos mostrando las proporciones relativas.

> data(HairEyeColor)
 > mosaicplot(HairEyeColor)

rplot6-7112183

Mapa de calor

Los mapas de calor le permiten realizar análisis de datos exploratorios con dos dimensiones como eje y la tercera dimensión mostrada por la intensidad del color. Sin embargo, necesita convertir el conjunto de datos a un formato de matriz. Aquí está el código:

> heatmap(as.matrix(mtcars))

Puede usar el comando image () también para este tipo de visualización como:

> image(as.matrix(b[2:7]))

rplot12-8109622

¿Cómo resumir muchos datos?

Puede utilizar la función tableplot del paquete tabplot para resumir rápidamente una gran cantidad de datos

rplot13-5471253

Visualización de mapas

Lo último en R es la visualización de datos a través de bibliotecas Javascript. Folleto es una de las bibliotecas JavaScript de código abierto más populares para mapas interactivos. Se basa en https://rstudio.github.io/leaflet/

Puede instalarlo directamente desde github usando:

devtools::install_github("rstudio/leaflet")

rplot14-6542760

El código del mapa anterior es bastante simple:

library(magrittr)
library(leaflet)
m <- leaflet() %>%
addTiles() %>%  # Add default OpenStreetMap map tiles
addMarkers(lng=77.2310, lat=28.6560, popup="The delicious food of chandni chowk")
m  # Print the map

Gráficos 3D

Una de las formas más fáciles de impresionar a alguien con las capacidades de R es creando un gráfico 3D en R sin escribir NINGUNA línea de código y en 3 minutos. ¿Es demasiado pedir?

Usamos el paquete R Commander que actúa como interfaz gráfica de usuario (GUI). Estos son los pasos:

  • Simplemente instale el paquete Rcmdr
  • Utilice la opción de trazado 3D desde dentro de los gráficos

El código siguiente no lo escribe el usuario, sino que se genera automáticamente.

Nota: Cuando intercambiamos los ejes del gráfico, debería ver los gráficos con el código respectivo cómo pasamos las etiquetas de los ejes usando xlab, ylab, y el título del gráfico usando Main y color usando el parámetro col.

>data(iris, package="datasets")
>scatter3d(Petal.Width~Petal.Length+Sepal.Length|Species, data=iris, fit="linear"
>residuals=TRUE, parallel=FALSE, bg="black", axis.scales=TRUE, grid=TRUE, ellipsoid=FALSE)

screenshot-from-2015-07-12-00_02_26-8081474

También puede hacer gráficos en 3D con el paquete Lattice. Lattice también se puede utilizar para xyplots. Aquí está el código:

>attach(iris)# 3d scatterplot by factor level
>cloud(Sepal.Length~Sepal.Width*Petal.Length|Species, main="3D Scatterplot by Species")
>xyplot(Sepal.Width ~ Sepal.Length, iris, groups = iris$Species, pch= 20)

rplot16-8992675
rplot15-9787303

Correlograma (GUI)

El correlograma nos ayuda a visualizar los datos en matrices de correlación. Aquí está el código:

> cor(iris[1:4])
 Sepal.Length Sepal.Width Petal.Length Petal.Width
 Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
 Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
 Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
 Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000
 > corrgram(iris)

rplot17-4433109

Hay tres paquetes GUI principales en R. RCommander con KMggplots, Rattle para minería de datos y Deducer para visualización de datos. Estos ayudan a automatizar muchas tareas.

Notas finales

Realmente disfruté escribiendo sobre el artículo y las diversas formas en que R lo convierte en el mejor software de visualización de datos del mundo. Si bien Python puede progresar con seaborn y ggplot, nada supera la inmensa cantidad de paquetes en R para la visualización de datos estadísticos.

En este artículo, he discutido varias formas de visualización cubriendo los niveles básicos a avanzados de tablas y gráficos útiles para mostrar los datos usando la Programación R.

¿Le resultó útil este artículo? Hágame saber sus sugerencias en la sección de comentarios a continuación.

Si le gusta lo que acaba de leer y desea continuar con su aprendizaje sobre análisis, suscríbete a nuestros correos electrónicos, Síguenos en Twitter o como nuestro pagina de Facebook.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.