Guardar leyenda matplotlib como una imagen separada

Abhishek Kulkarni:

Fui a través del siguiente enlace antes de publicar la pregunta.

Obtener leyenda como una imagen en su Matplotlib

Soy incapaz de replicar la solución aportada por mi ejemplo.

Aquí está mi trama de datos y el código. Quiero salvar leyenda como una imagen separada.

df=pd.DataFrame(index=['A','B','C','D'], columns=['Values'])
df['Values'] = [0.45,0.28,0.21,0.3]

fig=plt.figure(figsize=(8,8))
ax1 = plt.subplot(121, aspect='equal')
df['Values'].dropna().plot(kind='pie', autopct='%1.0f%%', startangle=220, labels=None, 
                           colors=['#002c4b','#392e2c','#92847a','#ccc2bb','#6b879d'])

patches, labels = ax1.get_legend_handles_labels()
pp = ax1.legend(patches, labels=df.index, loc='center right', bbox_to_anchor=(0, 0.5), 
              fontsize=8, frameon=False, labelspacing=4)
ax1.axis('off')
plt.ylabel('')
img_name = 'unit1.png'   
plt.savefig(img_name,bbox_inches='tight', dpi = 300)
plt.close(fig)

Para sugerir el camino a seguir.

pellizcos:

De alguna manera, la interfaz de pandas a matplotlib parece echar a perder la llamada a get_legend_handles_labels. El código siguiente es el equivalente a lo que ha escrito, pero usos matplotlib de interfaz en lugar.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(index=['A','B','C','D'], columns=['Values'])
df['Values'] = [0.45, 0.28, 0.21, 0.3]

fig, ax = plt.subplots()
ax.pie(df["Values"].dropna(), 
       colors=['#002c4b', '#392e2c', '#92847a', '#ccc2bb', '#6b879d'], 
       autopct='%1.0f%%',
       startangle=220,
       labels=df.index,)
ax.legend(loc="best")

# get handles and labels for reuse
label_params = ax.get_legend_handles_labels() 

figl, axl = plt.subplots()
axl.axis(False)
axl.legend(*label_params, loc="center", bbox_to_anchor=(0.5, 0.5), prop={"size":50})
figl.savefig("LABEL_ONLY.png")

Puede que tenga que jugar con el figaspecty proppara obtener resultados óptimos para el tamaño de la etiqueta y el posicionamiento.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=351392&siteId=1
Recomendado
Clasificación