Gráfico donut en plotly

Gráfico donut en plotly con pie

Igual que la versión en matplotlib, un gráfico donut en plotly es un gráfico de sectores con un agujero en el centro. La función pie de plotly express acepta directamente un argumento hole, como una fracción del radio.

import plotly.express as px

fig = px.pie(names = ["G1", "G2", "G3", "G4", "G5"],
            values = [12, 22, 16, 38, 12],
            hole = 0.4)

fig.show()

Tamaño del agujero

hole es una fracción entre 0 y 1, así que valores más pequeños generan un agujero más grande (más parecido a un gráfico de sectores completo).

import plotly.express as px

fig = px.pie(names = ["G1", "G2", "G3", "G4", "G5"],
            values = [12, 22, 16, 38, 12],
            hole = 0.7)

fig.show()

Colores

Personaliza los colores de relleno con color_discrete_sequence, y el borde entre porciones con update_traces.

import plotly.express as px

fig = px.pie(names = ["G1", "G2", "G3", "G4", "G5"],
            values = [12, 22, 16, 38, 12],
            hole = 0.4,
            color_discrete_sequence = px.colors.sequential.Blues_r)
fig = fig.update_traces(marker = dict(line = dict(color = "white", width = 2)))

fig.show()

Porcentajes

Por defecto plotly ya muestra el porcentaje de cada porción. Controla qué se muestra con textinfo (por ejemplo "label+percent" o "value") a través de update_traces.

import plotly.express as px

fig = px.pie(names = ["G1", "G2", "G3", "G4", "G5"],
            values = [12, 22, 16, 38, 12],
            hole = 0.4)
fig = fig.update_traces(textinfo = "label+percent")

fig.show()

Texto en el centro

Como plotly no dibuja nada en el agujero vacío, añade un valor resumen ahí con add_annotation, colocado en el centro de la figura (x = 0.5, y = 0.5).

import plotly.express as px

value = [12, 22, 16, 38, 12]

fig = px.pie(names = ["G1", "G2", "G3", "G4", "G5"],
            values = value,
            hole = 0.4)
fig = fig.add_annotation(text = f"Total<br>{sum(value)}",
                   x = 0.5, y = 0.5,
                   showarrow = False, font_size = 16)

fig.show()
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon
Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon

También te puede interesar