tacosdedatos

Cover image for datasette 101: plugins
Sergio Sánchez
Sergio Sánchez

Posted on

datasette 101: plugins

datasette es parte de un ecosistema próspero de herramientas para trabajar con datos. En la primera parte de esta serie aprendimos sobre csvs-to-sqlite que sirve para transformar archivos CSV a SQlite. En esta entrada vamos a aprender sobre los "plugins" de datasette.

Un plugin es un pequeño programa complementario que extiende la funcionalidad de una aplicación (como lo es datasette).

El sitio oficial de datasette (datasette.io) lista 69 plugins al día de hoy. Estos varían en funcionalidad. Algunos sirven para manipular datos, otros para visualizarlos. Algunos sirven para agregar capas de seguridad a tu datasette, otros para exportar datos en más formatos de los incluidos (JSON y CSV).

No solo existen una gran variedad de plugins, lo cual vuelve datasette una herramienta extremadamente extendible, sino que también es muy sencillo crear tus propios plugins.

Crea tus propios plugins

En esta serie no vamos a explorar eso pero si te interesa puedes visitar la documentación oficial: https://docs.datasette.io/en/stable/writing_plugins.html

En esta entrada vamos a explorar 2 de los plugins mas populares:

Como agregar plugins de datasette

Agregar un plugin de datasette es tan fácil como instalarlo utilizando pip. En tu mismo entorno de trabajo, claro.

Datasette es lo suficientemente "inteligente" para detectar los plugins instalados en tu entorno virtual de manera automática.

Si deseas especificar el comportamiento de un plugin aun más...
Si deseas especificar su comportamiento aun más lo puedes lograr modificando tu metadata.yml de la manera apropiada. Hablaremos un poco mas de metadata.yml en las siguientes entradas.

¿Dónde encuentro una lista de los plugins disponibles?

La página oficial de datasette tiene un espacio designado justo para esto en datasette.io/plugins

En este ejercicio vamos a utilizar el plugin datasette-vega que nos permite visualizar datos en nuestro datasette utilizando Vega - una biblioteca de visualización en javascript.

Hace falta solo instalarlo.

pip install datasette-vega
Enter fullscreen mode Exit fullscreen mode

Si datasette todavía esta corriendo tendras que detenerlo y volver a ejecutar

datasette datos.db
Enter fullscreen mode Exit fullscreen mode

💡 Nota que el comando es el mismo, no tenemos que especificar a datasette que se ejecute con el plugin que acabamos de instalar

Al reiniciar tu instancia de datasette verás este nuevo botoncito

datasette con vega instalado

Este botón que dice "Show charting options" nos va a dar unas opciones para crear gráficos apartir de los datos en la tabla presente.

Por ahora, estos datos todavía no se encuentran en su formato óptimo para visualizarlos así que vamos a aprovechar otra habilidad de datasette para transformarlos: ejecutar código SQL dentro de tu navegador.

💡 Como este no es un tutorial de SQL vamos a simplemente tomar una sola columna y crear un gráfico a partir de eso, si tu sabes SQL te invito a que en los comentarios dejes una consulta que tomaría todos los años y los convertiría en filas en lugar de columnas. Es decir, transformar esta tabla de formato wide a long.

Primero, la consulta de SQL es

select
  country,
  [2010]
from
  literacy_rate_youth_female_percent_of_females_ages_15_24
Enter fullscreen mode Exit fullscreen mode

Después simplemente escogemos bar ya que queremos un gráfico de barras, country como valor de la X y 2010 como el valor de Y.

gráfico utilizando datasette-vega

Cluster-map

Uno de mis plugins favoritos de datasette es cluster-map que te permite crear un mapa interactivo si tus datos tienen longitud y latitud.

Esta tabla no tiene esos datos así que vamos a utilizar otro conjunto de datos. Este proviente del proyecto Fronteras Compasivas: https://humaneborders.org/migrant-death-mapping/

Estos datos son muertes en el desierto de Arizona de migrantes cruzando la frontera a Estados Unidos. Es una asociación que pone estaciones de agua en el desierto para que quienes crucen el desierto no mueran de deshidratación y subsiste a partir de donaciones así que si deseas apoyar puedes visitar la página https://humaneborders.org/gifts-for-donations/

Los datos los obtuvimos en formato CSV así que vamos a transformarlos utilizando csvs-to-sqlite y como estamos utilizando el mismo entorno virtual solo nos hace falta instalar el plugin datasette-cluster-map.

# transforma datos
csvs-to-sqlite ogis_migrant_deaths.csv datos-para-mapa.db
Enter fullscreen mode Exit fullscreen mode

Si ejecutamos datasette datos-para-mapa.db veremos que nuestra tabla tiene las columnas Longitude y Latitude. Esto nos ayuda ya que por defecto datasette-cluster-map busca esas columnas (o las columnas "lat" y "long") para crear el mapa.

tabla de datos-para-mapa.db

Ya que ese es el caso, simplemente hace falta instalar el plugin

pip install datasette-cluster-map
Enter fullscreen mode Exit fullscreen mode

¡Y sin tener que cambiar nada tenemos un mapa interactivo a partir de nuestros datos!

Imagen de cluster map en acción

Discussion (0)