• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

1.3K
Vistas
Color de diagrama de caja de Python Matplotlib

Estoy tratando de hacer dos conjuntos de diagramas de caja usando Matplotlib. Quiero que cada conjunto de diagramas de caja se llene (y puntos y bigotes) en un color diferente. Así que básicamente habrá dos colores en la trama.

Mi código está debajo, sería genial si pudieras ayudar a hacer estos gráficos en color. d0 y d1 son cada una lista de listas de datos. Quiero el conjunto de diagramas de caja hechos con datos en d0 en un color y el conjunto de diagramas de caja con datos en d1 en otro color.

 plt.boxplot(d0, widths = 0.1) plt.boxplot(d1, widths = 0.1)
about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para colorear el diagrama de caja, primero debe usar la palabra clave patch_artist=True para decirle que las cajas son parches y no solo rutas. Entonces tienes dos opciones principales aquí:

  1. establezca el color a través del argumento de palabra clave ...props , por ejemplo
    boxprops=dict(facecolor="red") . Para todos los argumentos de palabras clave, consulte la documentación
  2. Utilice la plt.setp(item, properties) para establecer las propiedades de las cajas, bigotes, volantes, medianas, tapas.
  3. obtenga los elementos individuales de las cajas del diccionario devuelto y use item.set_<property>(...) en ellos individualmente. Esta opción se detalla en una respuesta a la siguiente pregunta: python matplotlibfilled boxplots , donde permite cambiar el color de las cajas individuales por separado.

El ejemplo completo, mostrando las opciones 1 y 2:

 import matplotlib.pyplot as plt import numpy as np data = np.random.normal(0.1, size=(100,6)) data[76:79,:] = np.ones((3,6))+0.2 plt.figure(figsize=(4,3)) # option 1, specify props dictionaries c = "red" plt.boxplot(data[:,:3], positions=[1,2,3], notch=True, patch_artist=True, boxprops=dict(facecolor=c, color=c), capprops=dict(color=c), whiskerprops=dict(color=c), flierprops=dict(color=c, markeredgecolor=c), medianprops=dict(color=c), ) # option 2, set all colors individually c2 = "purple" box1 = plt.boxplot(data[:,::-2]+1, positions=[1.5,2.5,3.5], notch=True, patch_artist=True) for item in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']: plt.setp(box1[item], color=c2) plt.setp(box1["boxes"], facecolor=c2) plt.setp(box1["fliers"], markeredgecolor=c2) plt.xlim(0.5,4) plt.xticks([1,2,3], [1,2,3]) plt.show()

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar

0

Puede cambiar el color de un diagrama de caja usando setp en el valor devuelto de boxplot() . Este ejemplo define una función box_plot() que permite especificar los colores de borde y relleno:

 import matplotlib.pyplot as plt def box_plot(data, edge_color, fill_color): bp = ax.boxplot(data, patch_artist=True) for element in ['boxes', 'whiskers', 'fliers', 'means', 'medians', 'caps']: plt.setp(bp[element], color=edge_color) for patch in bp['boxes']: patch.set(facecolor=fill_color) return bp example_data1 = [[1,2,0.8], [0.5,2,2], [3,2,1]] example_data2 = [[5,3, 4], [6,4,3,8], [6,4,9]] fig, ax = plt.subplots() bp1 = box_plot(example_data1, 'red', 'tan') bp2 = box_plot(example_data2, 'blue', 'cyan') ax.legend([bp1["boxes"][0], bp2["boxes"][0]], ['Data 1', 'Data 2']) ax.set_ylim(0, 10) plt.show()

Esto se mostraría de la siguiente manera:

captura de pantalla de diagrama de caja

about 3 years ago · Santiago Trujillo Denunciar

0

Esta pregunta parece ser similar a esa ( Patrón de cara para cajas en diagramas de caja ) Espero que este código resuelva su problema

 import matplotlib.pyplot as plt # fake data d0 = [[4.5, 5, 6, 4],[4.5, 5, 6, 4]] d1 = [[1, 2, 3, 3.3],[1, 2, 3, 3.3]] # basic plot bp0 = plt.boxplot(d0, patch_artist=True) bp1 = plt.boxplot(d1, patch_artist=True) for box in bp0['boxes']: # change outline color box.set(color='red', linewidth=2) # change fill color box.set(facecolor = 'green' ) # change hatch box.set(hatch = '/') for box in bp1['boxes']: box.set(color='blue', linewidth=5) box.set(facecolor = 'red' ) plt.show()

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda