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.
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 Crea tus propios plugins
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
Si datasette todavía esta corriendo tendras que detenerlo y volver a ejecutar
datasette datos.db
💡 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
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
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.
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
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.
Ya que ese es el caso, simplemente hace falta instalar el plugin
pip install datasette-cluster-map
¡Y sin tener que cambiar nada tenemos un mapa interactivo a partir de nuestros datos!
Discussion (0)