Existen muchas maneras de hacer visualización. En esta página enumeraremos algunas herramientas para el curso.

Python

En clases utilizaremos las herramientas de Python a través de Jupyter. Nos enfocaremos en seaborn, matplotlib, pandas y geopandas.

Un buen libro introductorio a Data Science en Python es Python Data Science Handbook, de Jake Vanderplas. Disponible on-line en inglés.

Otro recurso interesante es una introducción a numpy y matplotlib por Sebastian Raschka (en inglés). numpy es la biblioteca base de pandas y otras para estructurar información.

matplotlib

Es una biblioteca establecida y con mucha funcionalidad, pero con una curva de aprendizaje alta debido a presentar pocas abstracciones y alta complejidad técnica. Esta complejidad puede ser una fortaleza, pues permite que diseñemos e implementemos visualizaciones específicas para nuestros fines. En general, en matplotlib se crean figuras que contienen los siguientes elementos:

Anatomía de una figura en matplotlib. Fuente: https://matplotlib.org/stable/gallery/showcase/anatomy.html

Anatomía de una figura en matplotlib. Fuente: https://matplotlib.org/stable/gallery/showcase/anatomy.html

Anatomía de una figura en matplotlib. Fuente: https://matplotlib.org/stable/gallery/showcase/anatomy.html

El cómo se configuren esos elementos dependerá de la codificación visual a utilizar para los datos disponibles. Eso lo veremos durante el curso.

La biblioteca dispone de documentación extensa y tutoriales en la red. Es posiblemente una de las más utilizadas para hacer gráficos, dada su disponibilidad para Python y su trayectoria de más de 15 años.

“Cheat Sheet” (torpedo) oficial de matplotlib: https://github.com/matplotlib/cheatsheets/.

“Cheat Sheet” (torpedo) oficial de matplotlib: https://github.com/matplotlib/cheatsheets/.

“Cheat Sheet” (torpedo) oficial de matplotlib: https://github.com/matplotlib/cheatsheets/.

Algunos links:

seaborn

Construida sobre matplotlib, seaborn es una biblioteca de alto nivel, que abstrae visualizaciones de manera fácil de configurar, desagregar, componer, y que incluye funcionalidad estadística. Eso quiere decir que seaborn también produce o manipula figuras, por tanto, se puede complementar con las herramientas propias de matplotlib u otras que también se construyan sobre la misma base.

Hay un tutorial oficial disponible.

pandas y geopandas

pandas y geopandas son bibliotecas de análisis de datos (tabulares y geográficos, respectivamente). Incluyen funcionalidad básica de visualización, que puede ser extendida con código de matplotlib y seaborn, ya que en sí mismas sus funciones de visualización trabajan sobre figuras de matplotlib. pandas tiene un extenso módulo de visualización, al igual que geopandas.

aves

aves es mi propio repositorio de herramientas, que he decidido empezar a recolectar y organizar para que quede disponible para este curso (y para quien desee utilizarlo en sus propios proyectos). Se puede descargar desde el repositorio aves en github.

Una visualización implementada con aves: un mapa de calor de viajes en Santiago a partir de la Encuesta Origen Destino 2012.

Una visualización implementada con aves: un mapa de calor de viajes en Santiago a partir de la Encuesta Origen Destino 2012.

Una visualización implementada con aves: un mapa de calor de viajes en Santiago a partir de la Encuesta Origen Destino 2012.

aves se construye sobre matplotlib, seaborn, pandas y geopandas, y otras bibliotecas de Python. Para quienes usan Windows, lamentablemente no podemos usar el código de aves de manera directa, ya que algunas bibliotecas son incompatibles con Windows (como graph-tool). Lo que se recomienda hacer es instalar el Windows Subsystem for Linux que crea una máquina virtual a la que se accede de manera natural desde Windows, incluyendo una consola. Eso permite ejecutar código dentro de Windows como si se estuviese en una distribución de GNU/Linux como Ubuntu (es lo que hago yo).

Otras bibliotecas en Python

Las siguientes bibliotecas son modernas y trabajan con tecnología Web, es decir, permiten interactuar con la visualización a través del navegador.

  • Altair: alto nivel, foco en gramática de los datos en vez de un enfoque imperativo como matplotlib. Genera visualizaciones interactivas en HTML. Incluye una clase de conceptos de visualización.
  • plotly: alto nivel que provee la implementación de más de 40 técnicas de visualización con interactividad.
  • bokeh: similar a plotly, también provee técnicas de visualización con interactividad.

Alternativas a Python

R

  • ggplot2: alto nivel, foco en gramática de los datos.
  • shiny: alto nivel, foco en interactividad y composición.
  • Un buen libro introductorio es Data Visualization: a practical introduction, de Kieran Healy. Disponible on-line.
  • Un curso en castellano con live-coding es dictado por Derek Corcoran y está disponible en YouTube.

JavaScript

  • d3.js: bajo nivel, foco en expresividad de los datos.
  • plot.ly: alto nivel, foco en visualización estadística.
  • p5.js: bajo nivel, foco en diseño, estética.
  • deck.gl: alto nivel, foco en 3D y visualización geográfica.
  • Vega: alto nivel, foco en gramática de los datos (Altair se construye sobre ésta).

Visualización basada en Web

Las siguientes bibliotecas funcionan directamente en un navegador sin necesidad de instalar software adicional.

Rawgraphs

Fuente: https://towardsdatascience.com/create-beautiful-art-from-your-personal-data-9dc0abfeeaf

Fuente: https://towardsdatascience.com/create-beautiful-art-from-your-personal-data-9dc0abfeeaf

Fuente: https://towardsdatascience.com/create-beautiful-art-from-your-personal-data-9dc0abfeeaf

Rawgraphs es una aplicación que permite copiar-y-pegar o subir ficheros para configurar distintos tipos de visualizaciones. Es intuitivo y directo de usar, y permite exportar la visualización en múltiples formatos, incluyendo imágenes o archivos que pueden ser editados en programas gráficos.

Kepler.gl

Ejemplo de uso de Kepler.gl.

Ejemplo de uso de Kepler.gl.

Ejemplo de uso de Kepler.gl.

Kepler.gl es una aplicación que permite subir datos geográficos y visualizarlos en 3D de manera interactiva y fluída. Utiliza tecnologías 3D para presentar fluidez y desempeño, además de permitir configurar una visualización en pocos pasos. De manera interna utiliza deck.gl.

Programas

  • Excel, LibreOffice, Google Sheets: permiten hacer gráficos para datos tabulares, con extensiones.
  • Power BI: potente y extensible, contiene muchas visualizaciones implementadas de múltiples fuentes de datos, permite conectarse a sus propias bases de datos.
  • Tableau: potente y extensible, contiene muchas visualizaciones implementadas de múltiples fuentes de datos, permite conectarse a sus propias bases de datos.
  • Qlikview: potente y extensible, contiene muchas visualizaciones implementadas de múltiples fuentes de datos, permite conectarse a sus propias bases de datos.
  • Gephi: software libre para visualización y análisis de redes.
  • QGIS: software libre, disponible en muchas plataformas. ¡Los sistemas de información geográfica también permiten hacer visualización!

Guías