"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 > ¿Cómo colorear los gráficos de dispersión por valores de columna en Python?

¿Cómo colorear los gráficos de dispersión por valores de columna en Python?

Publicado el 2024-11-08
Navegar:303

How to Color Scatter Plots by Column Values in Python?

Colorear diagramas de dispersión por valores de columna

En Python, la biblioteca Matplotlib proporciona varios medios para personalizar la estética de los diagramas de dispersión. Una tarea común es asignar colores según los valores de una columna específica.

Integración de Seaborn

Una solución es aprovechar la biblioteca Seaborn, que se basa en Matplotlib. Seaborn ofrece funciones de alto nivel como sns.relplot y sns.FacetGrid que le permiten asignar fácilmente diagramas de dispersión a columnas específicas. Al especificar el parámetro de tono, puede colorear los puntos de acuerdo con una tercera columna que contiene etiquetas de categorías.

import seaborn as sns

sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')

Usando directamente Matplotlib

Como alternativa, puede utilizar directamente la función plt.scatter de Matplotlib para crear diagramas de dispersión y especificar colores manualmente. Esto requiere la creación de un diccionario de colores personalizado que asigne etiquetas de categorías a colores.

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

Al llamar a esta función, puede generar un diagrama de dispersión coloreado por la columna de categoría especificada:

df = pd.DataFrame({'Height': np.random.normal(size=10),
                   'Weight': np.random.normal(size=10),
                   'Gender': ["Male", "Male", "Unknown", "Male", "Male",
                              "Female", "Did not respond", "Unknown", "Female", "Female"]})
fig = dfScatter(df)
Declaración de liberación Este artículo se reimprime en: 1729320496 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