"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Se pueden colorear gráficos de dispersión según valores de columnas específicos en Pandas con Matplotlib?

¿Se pueden colorear gráficos de dispersión según valores de columnas específicos en Pandas con Matplotlib?

Publicado el 2024-11-08
Navegar:473

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Colorear diagramas de dispersión por valores de columna usando Pandas y Matplotlib

Matplotlib es una popular biblioteca de Python para crear visualizaciones estáticas, animadas e interactivas en Pitón. Este artículo explora el uso de Matplotlib para colorear diagramas de dispersión basados ​​en valores en una columna específica de un Pandas DataFrame.

Importaciones y datos

Para comenzar, importamos las bibliotecas necesarias , incluidos Matplotlib (como plt) y Pandas (como pd). También generamos un DataFrame de muestra ("df") con tres columnas: "Altura", "Peso" y "Sexo".

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})

Actualización en agosto de 2021

Seaborn ha introducido nuevas funciones a nivel de figura, como seaborn.relplot en la versión 0.11.0. Se recomiendan estas funciones en lugar de usar FacetGrid directamente.

sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()

Respuesta anterior (2015)

Si desea utilizar Matplotlib directamente, deberá asignar la función de dispersión de matplotlib a las categorías de Pandas DataFrame . Para hacer esto:

  • Cree un diccionario con categorías únicas a partir de la columna y los colores.
  • Agregue una nueva columna "Color" al DataFrame, asignando a cada categoría un color correspondiente.
  • Utilice la función de dispersión para trazar los datos, especificando la columna de color como argumento "c".
def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()
    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))

    df["Color"] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

fig = dfScatter(df)
fig.savefig('fig1.png')

Si sigue estos pasos, puede colorear fácilmente los diagramas de dispersión según los valores de las columnas usando Pandas y Matplotlib.

Declaración de liberación Este artículo se reimprime en: 1729320559 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3