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.

¿Cómo establecer el color de fuente de las etiquetas de datos del gráfico de rosquilla utilizando python-pptx?

Estoy tratando de dar formato al gráfico de rosquilla utilizando el siguiente código. Está haciendo todo excepto cambiar el color de las etiquetas de datos.

d_plot = chart.plots[0]
d_plot.has_data_labels = True
for series in d_plot.series:
    values = series.values
    counter = 0
    for point in series.points:
        ddl = point.data_label
        ddl.has_text_frame = True
        ddl.text_frame.text = str("{:.0%}".format(values[counter]))
        ddl.text_frame.paragraphs[0].font.name = "calibri"
        ddl.text_frame.paragraphs[0].font.size = Pt(9)
        ddl.font.color.rgb = RGBColor(255, 0, 0)
        counter = counter + 1

¿Hay alguna manera de lograr eso? Cualquier ayuda será muy apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de cambiar el color de las etiquetas de datos en un gráfico de rosquilla usando python-pptx. En el código anterior, la línea ddl.font.color.rgb = RGBColor(255, 0, 0) intenta establecer el color de la fuente de la etiqueta de datos en rojo. Sin embargo, este código solo funcionará para gráficos de barras, columnas y líneas, pero no para gráficos de rosquilla.

    Para cambiar el color de las etiquetas de datos en un gráfico de rosquilla, necesitas acceder al objeto “format” del punto de datos. Puedes hacer eso reemplazando la línea ddl.font.color.rgb = RGBColor(255, 0, 0) con el siguiente código:

    formato = punto.format
    relleno = formato.fill
    relleno.solid()
    relleno.fore_color.rgb = RGBColor(255, 0, 0)
    

    Este código establecerá el color de relleno de la etiqueta de dato en rojo. Puedes reemplazar RGBColor(255, 0, 0) con cualquier otro color que desees.

    Entonces, el código modificado será:

    d_plot = chart.plots[0]
    d_plot.has_data_labels = True
    for series in d_plot.series:
        valores = series.values
        contador = 0
        for punto in series.points:
            ddl = punto.data_label
            ddl.has_text_frame = True
            ddl.text_frame.text = str("{:.0%}".format(valores[contador]))
            ddl.text_frame.paragraphs[0].font.name = "calibri"
            ddl.text_frame.paragraphs[0].font.size = Pt(9)
            formato = punto.format
            relleno = formato.fill
            relleno.solid()
            relleno.fore_color.rgb = RGBColor(255, 0, 0)
            contador = contador + 1
    

    Este código debería cambiar el color de las etiquetas de datos en tu gráfico de rosquilla.

Comments are closed.