es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Anular las etiquetas de porcentaje del gráfico circular de Matplotlib a un valor específico que no sume el 100%

Tengo un gráfico de pastel dado por el siguiente código:

import matplotlib.pyplot as plt
colorPalette=["#61412B","#DCC57D","#D57838","#FFCE33"]
fig, (ax1,ax2)=plt.subplots(1,2,figsize=(10,10))
labels=["Pequeño","Medio","Grande"]
values=[.258,.284,.458]
ax1.pie(values,labels=labels,explode=[0.01,0.01,0.01],colors=colorPalette,autopct='%1.1f%%')
labels=["Peg de mercado","Peg primario (pasivo)","Límite","Peg de punto medio"]
values=[.027,.09,.35,.534]
ax2.pie(values,labels=labels,explode=[0.01,0.01,0.01,0.01],colors=colorPalette,autopct='%1.1f%%')

Noté que mi valor de entrada de 53,4% en el segundo gráfico se cambia a 53,3%. ¿Existe alguna manera de anular esto y mostrar aún el 53,4%, aunque sume más de 100%?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de anular esto y seguir mostrando el 53,4%. Puede configurar el parámetro textprops de la función autopct y establecer manualmente el texto que se mostrará. Aquí hay un ejemplo:

    import matplotlib.pyplot as plt
    
    colorPalette=["#61412B","#DCC57D","#D57838","#FFCE33"]
    
    fig, (ax1,ax2)=plt.subplots(1,2,figsize=(10,10))
    labels=["Pequeño","Mediano","Grande"]
    values=[.258,.284,.458]
    ax1.pie(values,labels=labels,explode=[0.01,0.01,0.01],colors=colorPalette,autopct='% 1.1f%%')
    labels=["Peg de Mercado","Peg Primario (Pasivo)","Límite","Peg de Punto Medio"]
    values=[.027,.09,.35,.534]
    ax2.pie(values,labels=labels,explode=[0.01,0.01,0.01,0.01],colors=colorPalette,
            autopct=lambda x: '{:.1f}%'.format(x) if x < 53.4 else '{:.1f}%\ n53,4%'.format(x),
            textprops={'color': 'white'})
    plt.show()
    

    En este ejemplo, configuramos la función autopct como una función lambda que verifica si el valor es menor que el 53,4%. Si es así, simplemente formatea el valor para mostrar un decimal. Sin embargo, si es igual o mayor que el 53,4%, formatea el valor para mostrar un decimal y también agrega una nueva línea con el texto “53,4%”.

    También configuramos el parámetro textprops para establecer el color del texto en blanco.

    Esto producirá el siguiente gráfico circular:

    ![Pie Chart with Custom Text][2]

    Como puede ver, el valor de “Peg de Punto Medio” ahora se muestra como 53,4%, aunque suma más del 100%.

Comments are closed.