¿Cómo colorear un diagrama de dispersión por una variable en Altair?

Altair es una biblioteca de visualización estadística simple y fácil de usar para Python. Proporciona muchos tipos de visualizaciones que van desde gráficos de barras simples hasta visualizaciones compuestas como diagramas de caja. Scatter Plot es una de las visualizaciones más útiles de la biblioteca de Altair para el análisis bivariado y la búsqueda de relaciones entre dos columnas de datos en un conjunto de datos.

Empezando

A veces, un diagrama de dispersión simple no es suficiente para medir las relaciones entre las variables en un conjunto de datos. Una mejor visualización sería una gráfica entre dos variables cuantitativas/columnas de datos con respecto a una tercera variable. Esta tercera variable es casi siempre una variable nominal o categórica . Podemos colorear los puntos de datos en el diagrama de dispersión usando esta tercera variable. Colorear el diagrama de dispersión nos ayudará a reconocer qué punto de datos corresponde a qué categoría de la tercera variable.

Para colorear el gráfico de dispersión, el usuario simplemente tiene que asignar una variable nominal del conjunto de datos a la codificación de colores.

Entendamos la importancia de colorear el diagrama de dispersión usando un ejemplo:

El conjunto de datos Iris es uno de los conjuntos de datos más populares que se utilizan en la ciencia de datos y está disponible en la mayoría de las bibliotecas de conjuntos de datos. El conjunto de datos documenta las flores de iris en tres especies. Las columnas de datos disponibles en el conjunto de datos son sepalLength, sepalWidth, petalLength, petalWidth y especies. Primero, visualizaremos este conjunto de datos utilizando un diagrama de dispersión simple y luego veremos qué se puede lograr coloreando este diagrama de dispersión.

Para hacer un diagrama de dispersión simple, usamos el conjunto de datos de iris de la biblioteca Vega _datasets y lo pasamos al objeto Chart y usamos el método mark_point(). Luego, mapeamos la codificación de los ejes x e y para que sean variables sepalLength y petalLength.

El diagrama de dispersión simple usando iris sin colorear:

Python3

# Python3 program to illustrate
# How to color a Scatter Plot
# using altair
  
# Importing altair and vega_datasets library
import altair as alt
from vega_datasets import data
  
# Selecting the iris dataset
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',
)

Producción:

Diagrama de dispersión para el conjunto de datos Iris sin colorear

Como puede ver, podemos inferir de este diagrama de dispersión que un grupo de puntos es linealmente separable del otro grupo, pero no podemos ver qué puntos de datos corresponden a qué especies y qué tipos de relaciones están presentes. Para que este diagrama sea más informativo, colorearemos este diagrama de dispersión utilizando la variable especie.

Código:

Python3

# Python3 program to illustrate
# How to color a Scatter Plot
# using altair
  
# Importing altair and vega_datasets library
import altair as alt
from vega_datasets import data
  
# Selecting the iris dataset
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',
  # Coloring the Scatter Plot
  # Map the species to color
    color = 'species'
)

Producción:

Diagrama de dispersión para el conjunto de datos Iris con color

Altair genera automáticamente la leyenda que especifica qué color representa qué categoría de la variable de color. Al ver los puntos de datos coloreados, podemos inferir que la especie setosa tiene sépalos largos pero pétalos cortos. Las especies versicolor tienen pétalos y sépalos casi iguales y de tamaño mediano, mientras que las especies virginica también tienen pétalos y sépalos casi iguales pero de gran tamaño.

Como puede ver, podemos extraer más información coloreando un diagrama de dispersión.

Personalización de colores

Si no le gustan los colores elegidos por Altair para su diagrama de dispersión, puede personalizar los colores. Los colores predeterminados se pueden cambiar usando el argumento de escala de la clase Color, pasando la clase Escala al argumento de escala. Las personalizaciones disponibles son:

  1. Mapeo personalizado de colores a valores discretos: para el mapeo personalizado, usamos parámetros de dominio y rango de la escala y la lista de pases para valores y colores resp.
  2. Esquemas de color: Hay muchos esquemas de color proporcionados por el proyecto Vega. Si te gustan los colores oscuros, puedes usar el esquema ‘dark2’ y si hay más de 10 categorías puedes usar el esquema ‘category20’.

Ejemplo 1: Asignación personalizada de colores a valores discretos:

Python3

# Python3 program to illustrate
# How to do custom mapping
# of colors to discrete values
# for scatter plot coloring
# using altair
  
# Importing altair and vega_datasets library
import altair as alt
from vega_datasets import data
  
# Selecting the cars dataset
cars = data.cars()
  
# Making two lists for
# values and colors resp.
dom = ['Europe', 'Japan', 'USA']
rng = ['red', 'green', 'black']
  
# Making the Scatter Plot
alt.Chart(cars).mark_point().encode(
    
    # Map Miles_per_Gallon to x-axis
    x='Miles_per_Gallon',
      
    # Map the Horsepower to y-axis
    y='Horsepower',
      
    # Coloring the Scatter Plot
    # using Origin variable and
    # custom colors
    color=alt.Color('Origin', scale=alt.
                    Scale(domain=dom, range=rng))
)

Producción:

Diagrama de dispersión para el conjunto de datos de autos usando mapeo personalizado de colores y valores

Ejemplo 2 (esquemas de color):

Python3

# Python3 program to illustrate
# How to select color schemes
# for scatter plot coloring
# using altair
  
# Importing altair and vega_datasets library
import altair as alt
from vega_datasets import data
  
# Selecting the cars dataset
cars = data.cars()
  
# Making the Scatter Plot
alt.Chart(cars).mark_point().encode(
    
    # Map Miles_per_Gallon to x-axis
    x='Miles_per_Gallon',
      
    # Map the Horsepower to y-axis
    y='Horsepower',
      
    # Coloring the Scatter Plot
    # using Origin variable and
    # color scheme
    color = alt.Color('Origin', scale=alt.
                      Scale(scheme = 'dark2'))
)

Producción:

Diagrama de dispersión para el conjunto de datos de automóviles usando un esquema de color

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 *