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()
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()
También te puede interesar