Saltar al contenido

¿Cómo evitar la superposición de etiquetas y autopct en un gráfico circular de matplotlib?

Recuerda que en las ciencias informáticas un problema casi siempre tiene diferentes resoluciones, de igual modo nosotros te mostramos lo más óptimo y eficiente.

Solución:

Alternativamente, puede colocar las leyendas al lado del gráfico circular:

import matplotlib.pyplot as plt
import numpy as np

x = np.char.array(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct', 'Nov','Dec'])
y = np.array([234, 64, 54,10, 0, 1, 0, 9, 2, 1, 7, 7])
colors = ['yellowgreen','red','gold','lightskyblue','white','lightcoral','blue','pink', 'darkgreen','yellow','grey','violet','magenta','cyan']
porcent = 100.*y/y.sum()

patches, texts = plt.pie(y, colors=colors, startangle=90, radius=1.2)
labels = ['0 - 1:1.2f %'.format(i,j) for i,j in zip(x, porcent)]

sort_legend = True
if sort_legend:
    patches, labels, dummy =  zip(*sorted(zip(patches, labels, y),
                                          key=lambda x: x[2],
                                          reverse=True))

plt.legend(patches, labels, loc='left center', bbox_to_anchor=(-0.1, 1.),
           fontsize=8)

plt.savefig('piechart.png', bbox_inches='tight')

ingrese la descripción de la imagen aquí


EDITAR: si desea mantener la leyenda en el orden original, como mencionó en los comentarios, puede configurar sort_legend=False en el código anterior, dando:

ingrese la descripción de la imagen aquí

valoraciones y reseñas

Recuerda algo, que puedes optar por la opción de glosar .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *