Introducción a Altair en Python

Altair es una biblioteca de visualización estadística en Python. Es de naturaleza declarativa y se basa en las gramáticas de visualización Vega y Vega-Lite. Se está convirtiendo rápidamente en la primera opción de las personas que buscan una forma rápida y eficiente de visualizar conjuntos de datos. Si ha utilizado bibliotecas de visualización imperativas como matplotlib, podrá apreciar correctamente las capacidades de Altair.

Se considera correctamente como una biblioteca de visualización declarativa ya que, al visualizar cualquier conjunto de datos en Altair, el usuario solo necesita especificar cómo se asignan las columnas de datos al canal de codificación, es decir, declarar enlaces entre las columnas de datos y los canales de codificación, como los ejes x e y, filas, columnas, etc. Simplemente encuadre, una biblioteca de visualización declarativa le permite concentrarse en el «qué» en lugar del «cómo», al manejar los otros detalles de la trama sin la ayuda de los usuarios.

Por el contrario, las bibliotecas imperativas como matplotlib lo obligan a especificar la parte del «cómo» de la visualización que quita el enfoque de los datos y la relación entre ellos. Esto también hace que el código sea largo y consuma mucho tiempo, ya que debe especificar detalles como las leyendas y los nombres de los ejes.

Instalación

El siguiente comando se puede usar para instalar Altair como cualquier otra biblioteca de Python:

pip install altair

Vamos a utilizar conjuntos de datos del paquete vega_datasets . Para instalar, se debe emplear el siguiente comando:

pip install vega_datasets

Nota: se debe usar Jupyter Notebook para ejecutar el código, ya que las visualizaciones requieren una interfaz de Javascript para mostrar los gráficos. Puede consultar el siguiente artículo para saber cómo usar Jupyter Notebook: Primeros pasos con Jupyter Notebook . También puede usar JupyterLab, Zeppelin o cualquier otro entorno de notebook o IDE compatible con notebook.

Elementos esenciales de un gráfico de Altair

Todos los gráficos de altair necesitan tres elementos esenciales: Datos, Marca y Codificación. También se puede hacer un gráfico válido especificando solo los datos y la marca.

El formato básico de todos los gráficos de altair es:

alt.Chart(datos).mark_bar().encode( 

       codificación1 = ‘columna1’, 

       codificación2 = ‘columna2’, 

)

  • Hacer un gráfico. 
  • Pasa algunos datos. 
  • Especifique el tipo de marca que desea. 
  • Especifique la codificación.

Ahora, veamos los elementos esenciales en detalle.

Datos

El conjunto de datos es el primer argumento que pasa al gráfico. Los datos en Altair se basan en Pandas Dataframe, por lo que la codificación se vuelve bastante simple y puede detectar los tipos de datos necesarios en la codificación, pero también puede usar lo siguiente para los datos:

  • Un objeto de datos o relacionado como UrlData, InlineData, NamedData
  • Un archivo de texto o URL con formato json o csv
  • Un objeto que admita __geo_interface__ (por ejemplo, Geopandas GeoDataFrame, GeoJSON Objects)

El uso de DataFrames facilitará el proceso, por lo que debe usar DataFrames siempre que sea posible.

Marca

La propiedad Mark especifica cómo se deben representar los datos en el gráfico. Hay muchos tipos de métodos de marca disponibles en Altair que tienen el siguiente formato:

mark_markname()

Algunas marcas básicas incluyen área, barra, punto, texto, marca y línea. Altair también proporciona algunas marcas compuestas como diagrama de caja, banda de error y barra de error. Estos métodos de marca también pueden aceptar argumentos opcionales como el color y la opacidad.

Una de las principales ventajas de usar Altair es que el tipo de gráfico se puede cambiar simplemente cambiando el tipo de marca.

Codificación

Una de las cosas más importantes en la visualización es la asignación de datos a las propiedades visuales del gráfico. Este mapeo en Altair se denomina codificación y se realiza a través del método Chart.encode(). Hay varios tipos de canales de codificación disponibles en Altair: canales de posición, canales de propiedad de marca, canales de hipervínculo, etc. De estos, los más utilizados son los canales x (valor del eje x) e y (valor del eje y) de los canales de posición. y color y opacidad de los canales de propiedad de marca.

Ventajas

  1. El código básico sigue siendo el mismo para todos los tipos de gráficos, el usuario solo necesita cambiar el atributo de marca para obtener gráficos diferentes.
  2. El código es más corto y sencillo de escribir que otras bibliotecas de visualización imperativas. El usuario puede concentrarse en la relación entre las columnas de datos y olvidarse de los detalles innecesarios de la trama.
  3. El facetado y la interactividad son muy fáciles de implementar.

Ejemplos

Programa 1: (Gráfico de barras simple)

Python3

# Importing altair and pandas library
import altair as alt
import pandas as pd
  
# Making a Pandas DataFrame
score_data = pd.DataFrame({
    'Website': ['StackOverflow', 'FreeCodeCamp',
                'GeeksForGeeks', 'MDN', 'CodeAcademy'],
    'Score': [65, 50, 99, 75, 33]
})
  
# Making the Simple Bar Chart
alt.Chart(score_data).mark_bar().encode(
    # Mapping the Website column to x-axis
    x='Website',
    # Mapping the Score column to y-axis
    y='Score'
)

Producción:

Gráfico de barras simple usando Altair

Programa 2: (Gráfico de dispersión)

En este ejemplo, visualizaremos el conjunto de datos del iris de la biblioteca vega_datasets en forma de diagrama de dispersión. El método de marca utilizado para el gráfico de dispersión en este ejemplo es mark_point(). Para este análisis de dos variables, asignamos las columnas sepalLength y petalLength a la codificación de los ejes x e y. Además, para diferenciar los puntos entre sí, asignamos la codificación de formas a la columna de especies. 

Python3

# Importing altair
import altair as alt
# Import data object from vega_datasets
from vega_datasets import data
  
# Selecting the data
iris = data.iris()
  
# Making the Scatter Plot
alt.Chart(iris).mark_point().encode(
    # Map the sepalLength to x-axis
    x='sepalLength',
    # Map the petalLength to y-axis
    y='petalLength',
    # Map the species to shape
    shape='species'
)

Producción:

Diagrama de dispersión usando Altair

Publicación traducida automáticamente

Artículo escrito por neerajxrana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *