"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 asignar colores a puntos en diagramas de dispersión según los valores de las columnas en Python?

¿Cómo asignar colores a puntos en diagramas de dispersión según los valores de las columnas en Python?

Publicado el 2024-11-10
Navegar:972

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

Colorear diagramas de dispersión por valores de columna en Python

La versatilidad de ggplot2 en R permite una asignación perfecta de colores a puntos de datos según la columna valores. Esta característica también se puede replicar en Python usando pandas dataframes y Matplotlib.

Usando Pandas y Matplotlib

Para asignar colores a valores en Matplotlib, considere los siguientes pasos:

  1. Crear un diccionario de colores: defina un diccionario que asigne valores únicos en la columna categórica a un color correspondiente. Esto garantiza una asignación de color consistente en todos los puntos de datos.
  2. Agregar una columna de color: cree una nueva columna en el marco de datos que asigne el color correspondiente a cada valor en la columna categórica.
  3. Trazar el diagrama de dispersión: use el parámetro c en matplotlib.pyplot.scatter para especificar la columna de color como argumento de color.

Aquí hay un ejemplo de implementación:

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

Ejemplo de uso

Considere un marco de datos con columnas Altura, Peso y Género. Para crear un diagrama de dispersión donde los colores se asignan según la columna Género:

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)

Esto generará un diagrama de dispersión donde la columna Género determina el color de cada punto de datos.

Declaración de liberación Este artículo se reimprime en: 1729320437 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