Diagrama de árbol de plotly

Ammar Ali 15 febrero 2024
Diagrama de árbol de plotly

Este tutorial discutirá la creación de un gráfico de treemap usando la función treemap() de Plotly en Python.

Use la función treemap() de Plotly para crear un gráfico de treemap en Python

Un gráfico de treemap representa los datos como rectángulos anidados en un gráfico. Podemos usar la función treemap() de plotly.express para crear un gráfico de treemap en Python. Para crear un gráfico de treemap, debemos definir los nombres de sus padres y pasarlos dentro de la función treemap().

Por ejemplo, creemos un diagrama de árbol de una familia en la que Tony tiene dos hijos, Emily y Draco, y Emily también tiene dos hijos, Andree y Jason, y Draco solo tiene un hijo, Pedro.

Definiremos todos los nombres de los miembros de la familia en una lista y lo pasaremos al argumento de nombres, y luego definiremos el padre de cada miembro y lo pasaremos al argumento padres.

Vea el código a continuación.

import plotly.express as px

names = ["Tony", "Andree", "Jason", "Emily", "Petter", "Draco"]
parents = ["", "Emily", "Emily", "Tony", "Draco", "Tony"]
fig = px.treemap(names=names, parents=parents)
fig.show()

Producción:

diagrama de árbol de una familia

El primer elemento de la lista parents está vacío porque Tony no tiene padre. Podemos utilizar el argumento anchura y altura para establecer la anchura y la altura del gráfico.

Usando el argumento de color, podemos dar a cada rectángulo un color diferente usando la secuencia de colores predeterminada. Podemos dar un título al histograma usando el argumento title.

Podemos cambiar el título flotante usando el argumento hover_name y estableciendo su valor en una lista del mismo tamaño que los datos de entrada. Podemos darle a cada triángulo un id diferente usando el argumento ids.

Por ejemplo, cambiemos las propiedades mencionadas anteriormente. Vea el código a continuación.

import plotly.express as px

names = ["Tony", "Andree", "Jason", "Emily", "Petter", "Draco"]
parents = ["", "Emily", "Emily", "Tony", "Draco", "Tony"]
fig = px.treemap(
    names=names,
    parents=parents,
    color=names,
    title="Family Treemap",
    hover_name=names,
    ids=names,
)
fig.show()

Producción:

cambiar las propiedades del treemap

Podemos cambiar la secuencia de colores por defecto usando el argumento color_discrete_sequence. Podemos establecer la secuencia de colores en la secuencia de colores admitida por Plotly, como Dark24 o Light24.

Por ejemplo, cambiemos la secuencia de colores del histograma anterior. Vea el código a continuación.

import plotly.express as px

names = ["Tony", "Andree", "Jason", "Emily", "Petter", "Draco"]
parents = ["", "Emily", "Emily", "Tony", "Draco", "Tony"]
fig = px.treemap(
    names=names,
    parents=parents,
    color=names,
    color_discrete_sequence=px.colors.qualitative.Light24,
)
fig.show()

Producción:

cambiando la secuencia de colores del treemap

En lugar de usar una secuencia de colores, también podemos dar cualquier color a cada rectángulo usando el argumento color_discrete_map. Este argumento se utiliza para anular los colores predeterminados.

Si solo cambiamos algunos colores del rectángulo, el resto se asignará a partir de la secuencia de colores. Por ejemplo, cambiemos los dos primeros colores del rectángulo a amarillo y negro.

Vea el código a continuación.

import plotly.express as px

names = ["Tony", "Andree", "Jason", "Emily", "Petter", "Draco"]
parents = ["", "Emily", "Emily", "Tony", "Draco", "Tony"]
fig = px.treemap(
    names=names,
    parents=parents,
    color=names,
    color_discrete_sequence=px.colors.qualitative.Light24,
    color_discrete_map={"Tony": "yellow", "Emily": "black"},
)
fig.show()

Producción:

cambio de color de cada rectángulo en el treemap

También podemos usar un dataframe para crear un gráfico de treemap. Por ejemplo, leamos los datos de esperanza de vida del mundo de 2007 y creemos su treemap con los nombres de los continentes como padres y los nombres de los países como hijos.

Vea el código a continuación.

import plotly.express as px

df = px.data.gapminder().query("year == 2007")
fig = px.treemap(
    df,
    path=[px.Constant("world"), "continent", "country"],
    color="lifeExp",
    hover_data=["country"],
    color_continuous_scale="RdBu",
)
fig.show()

Producción:

treemap del dataframe

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - Plotly Plot