Sunburst Plot usando la clase graph_objects en plotly

Plotly es una biblioteca de Python que se utiliza para diseñar gráficos, especialmente gráficos interactivos. Puede trazar varios gráficos y tablas como histograma, diagrama de barras, diagrama de caja, diagrama de dispersión y muchos más. Se utiliza principalmente en el análisis de datos, así como en el análisis financiero. plotly es una biblioteca de visualización interactiva.

Gráfico Sunburst usando la clase graph_objects

Si Plotly Express no representa un buen punto de partida, también se puede personalizar desde la clase go.Sunburst más genérica de plotly.graph_objects. Sunbrust es el prototipo para exhibir datos jerárquicos. Cada nivel de la jerarquía está representado por un anillo o haga un círculo con el círculo más interno como la parte superior de la jerarquía. El gráfico Sunbrust sin ningún dato jerárquico se parece al gráfico de anillos.

Sintaxis: class plotly.graph_objects.Sunburst(arg=Ninguno, branchvalues=Ninguno, count=Ninguno, customdata=Ninguno, hoverinfo=Ninguno, **kwargs)

Parámetros:

arg: dict de propiedades compatibles con este constructor o una instancia de plotly.graph_objects.Sunburst

branchvalues: determina cómo se suman los elementos de los valores. 

count: Determina valores por defecto cuando no se proporciona, infiriendo un 1 para cada una de las “hojas” y/o “ramas”, en caso contrario 0.

customdata: Asigna datos extra a cada dato. Esto puede ser útil al escuchar eventos de desplazamiento, clic y selección. Tenga en cuenta que, las trazas de «dispersión» también agregan elementos de datos personalizados en los elementos DOM de marcadores

hoverinfo:  determina qué información de rastreo aparece al pasar el mouse. Si no se configura ninguno u omitir, no se muestra información al pasar el mouse. Pero, si no se establece ninguno, los eventos de clic y desplazamiento aún se activan.

Ejemplo:

Python3

import plotly.graph_objects as go
 
fig = go.Figure(go.Sunburst(
    labels =["A", "B", "C", "D", "E", "F", "G", "H", "I"],
    parents =["", "A", "A", "C", "C", "A", "A", "G", "A" ],
    values =[11, 24, 2, 6, 7, 1, 1, 5, 4],
))
 
fig.update_layout(margin = dict(t = 0, l = 0, r = 0, b = 0))
 
 
fig.show()

Producción:

Mostrando valores de rama

Con branchvalues ​​»total», el valor de parent para representar el ancho de la cuña. Con los valores de rama «restante», el ancho de los padres está delimitado por sus propios valores más el valor de los hijos. La suma de los hijos no puede exceder la suma de los padres cuando los valores de las ramas se configuran como «total». Veamos un ejemplo para obtener más información al respecto, se muestra a continuación:

Ejemplo:

Python3

import plotly.graph_objects as go
 
fig = go.Figure(go.Sunburst(
    labels =["A", "B", "C", "D", "E", "F", "G", "H", "I"],
    parents =["", "A", "A", "C", "C", "A", "A", "G", "A" ],
    values =[11, 24, 2, 6, 7, 1, 1, 5, 4],
    branchvalues ="remainder",
))
 
fig.update_layout(margin = dict(t = 0, l = 0, r = 0, b = 0))
 
fig.show()

Producción:

Presentación de una gran cantidad de rebanadas

En forma gráfica, el gráfico sunbrust tiene varias porciones en su pastel, lo que ayuda a presentar los datos de una manera más comprensible y eficiente, ya que cada columna de datos está separada por diferentes colores. Se pueden construir varias porciones de datos en una sola torta que conduce a ocupe menos espacio en el diseño. Veamos un ejemplo que se muestra a continuación

Ejemplo:

Python3

import plotly.graph_objects as go
import pandas as pd
 
df = pd.read_csv('https://raw.githubusercontent.com / plotly / datasets / 718417069ead87650b90472464c7565dc8c2cb1c / sunburst-coffee-flavors-complete.csv')
 
fig = go.Figure()
 
fig.add_trace(go.Sunburst(
    ids = df.ids,
    labels = df.labels,
    parents = df.parents,
    domain = dict(column = 0)
))
 
fig.show()

Producción: 

Publicación traducida automáticamente

Artículo escrito por nishantsundriyal98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *