Considera los siguientes datos a modo de ejemplo:
import pandas as pd
# Datos
df = pd.DataFrame({
"sepal_length": [5.1, 4.9, 6.3, 6.7, 5.5, 6.0],
"sepal_width": [3.5, 3.0, 3.3, 3.1, 2.4, 2.9],
"petal_length": [1.4, 1.4, 6.0, 5.6, 3.8, 4.5],
"petal_width": [0.2, 0.2, 2.5, 2.4, 1.1, 1.5],
"species_id": [1, 1, 3, 3, 2, 2]})
parallel_coordinates
Un gráfico de coordenadas paralelas representa cada observación como una línea que cruza un conjunto de ejes verticales paralelos, uno por variable numérica, lo que facilita comparar varias variables a la vez y detectar agrupaciones. Pasa un data frame a px.parallel_coordinates y usará por defecto todas las columnas numéricas.
import plotly.express as px
fig = px.parallel_coordinates(df)
fig.show()
Color
Mapea una columna numérica a color (junto con color_continuous_scale) para resaltar grupos de observaciones similares, por ejemplo el identificador de especie.
import plotly.express as px
fig = px.parallel_coordinates(df, color = "species_id",
color_continuous_scale = "viridis")
fig.show()
Seleccionar las columnas
Por defecto cada columna numérica se convierte en un eje. Pasa una lista a dimensions para elegirlas y ordenarlas a mano, por ejemplo para excluir el identificador usado para el color.
import plotly.express as px
fig = px.parallel_coordinates(
df, dimensions = ["sepal_length", "sepal_width", "petal_length", "petal_width"],
color = "species_id", color_continuous_scale = "viridis")
fig.show()
parallel_categories
Si tus variables son categóricas en lugar de numéricas, usa parallel_categories en su lugar, que agrupa las líneas en cintas para cada categoría en vez de dibujar líneas individuales.
import plotly.express as px
import pandas as pd
# Datos de ejemplo
cat_df = pd.DataFrame({
"tamano": ["Pequeño", "Pequeño", "Grande", "Grande", "Mediano"],
"color": ["Rojo", "Azul", "Rojo", "Azul", "Rojo"],
"calidad": ["Buena", "Mala", "Buena", "Buena", "Mala"]})
fig = px.parallel_categories(cat_df)
fig.show()
También te puede interesar