Gráfico de burbujas de Plotly

Ammar Ali 1 abril 2022
Gráfico de burbujas de Plotly

Este tutorial discutirá la creación de un gráfico de burbujas usando la función scatter() de Plotly.

Gráfico de burbujas de Plotly en Python

Un gráfico de dispersión, también conocido como gráfico de burbujas, muestra puntos de datos como círculos o burbujas en un gráfico. Podemos usar la función scatter() de plotly.express para crear una burbuja o un diagrama de dispersión.

Para crear el gráfico de dispersión o de burbujas, debemos pasar los valores de los ejes x e y dentro de la función scatter(). Si solo se proporciona un valor de eje, la función utilizará los índices de los valores como los valores del segundo eje.

Por ejemplo, creemos un gráfico de burbujas usando algunos datos aleatorios. Vea el código a continuación.

import plotly.express as px

values = [2, 5, 7, 8, 3, 6]
fig = px.scatter(y=values, width=500, height=400)
fig.show()

Producción:

gráfico de burbujas usando dispersión

El argumento width y height se usa para establecer el ancho y el alto de la figura anterior en píxeles. También podemos crear un gráfico de burbujas utilizando un dataframe.

En el caso de un data frame, podemos usar el argumento data_frame para pasar los datos dentro de la función scatter(). Podemos dar un color aleatorio a cada burbuja usando el argumento color.

La función scatter() utilizará una secuencia de colores para establecer el color de cada burbuja. Podemos establecer el tamaño de cada burbuja usando el argumento size y establecer su valor en una lista de números enteros. Podemos establecer el título flotante para cada burbuja usando el argumento hover_name y estableciendo su valor en una lista de cadenas.

También podemos agregar texto dentro de cada burbuja usando el argumento text y estableciendo su valor en una lista de cadenas. Podemos dividir cada burbuja en un gráfico diferente usando el argumento facet_col, colocando cada burbuja en un gráfico diferente.

Podemos establecer la orientación de la trama usando el argumento orientation y establecer su valor en h para la orientación horizontal y v para la orientación vertical. Por ejemplo, cambiemos las propiedades mencionadas anteriormente. Vea el código a continuación.

import plotly.express as px

values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
    y=values,
    x=labels,
    width=500,
    height=400,
    color=labels,
    size=[5, 10, 15],
    hover_name=["B1", "B2", "B3"],
    text=["1", "2", "3"],
    facet_col=labels,
)
fig.show()

Producción:

cambiar las propiedades del gráfico de burbujas 1

También podemos añadir barras de error en cada burbuja utilizando el error_x para el error del eje x y error_y para el error del eje y.

Podemos cambiar la secuencia de colores predeterminada usando color_discrete_sequence y establecer su valor en una secuencia de colores compatible con Plotly como Dark24 y Light24 usando el atributo plotly.express.color.qualitative. Por ejemplo, cambiemos la secuencia de colores del gráfico de burbujas anterior.

Vea el código a continuación.

import plotly.express as px

values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
    y=values,
    x=labels,
    width=500,
    height=400,
    color=labels,
    size=[5, 10, 15],
    hover_name=["B1", "B2", "B3"],
    text=["1", "2", "3"],
    error_y=[1, 2, 1],
    color_discrete_sequence=px.colors.qualitative.Dark24,
)
fig.show()

Producción:

cambiar la secuencia de colores del gráfico de burbujas

Para cambiar la secuencia de colores, necesitamos cambiar el nombre de la secuencia de colores en el código anterior, como de Dark24 a Light24. Si queremos darle a cada burbuja nuestro color en lugar de una secuencia de colores, podemos usar el argumento color_discrete_map para anular la secuencia de colores.

Consulte este enlace para obtener más detalles sobre los colores de Plotly. Por ejemplo, cambiemos el color de las dos primeras burbujas presentes en el gráfico anterior.

Vea el código a continuación.

import plotly.express as px

values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
    y=values,
    x=labels,
    width=500,
    height=400,
    color=labels,
    size=[5, 10, 15],
    hover_name=["B1", "B2", "B3"],
    text=["1", "2", "3"],
    error_y=[1, 2, 1],
    color_discrete_map={"a": "red", "b": "green"},
)
fig.show()

Producción:

cambiando el color de las burbujas

Solo cambiamos los dos primeros colores, y el resto de los colores serán de la secuencia de colores predeterminada. Podemos establecer la opacidad de las burbujas usando el argumento opacity y establecer su valor de 0 a 1.

También podemos cambiar el eje a escala logarítmica usando los argumentos log_x y log_y y estableciendo su valor en verdadero. Podemos establecer el título de la figura usando el argumento title.

Podemos usar marginal_x y marginal_y para dibujar un gráfico de distribución sobre el gráfico de burbujas para mostrar la distribución de puntos. Por ejemplo, cambiemos las propiedades mencionadas anteriormente.

Vea el código a continuación.

import plotly.express as px

values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
    y=values,
    x=labels,
    width=500,
    height=400,
    color=labels,
    size=[5, 10, 15],
    hover_name=["B1", "B2", "B3"],
    text=["1", "2", "3"],
    error_y=[1, 2, 1],
    color_discrete_map={"a": "red", "b": "green"},
    title="Bubble Chart",
    opacity=0.7,
    marginal_x="histogram",
)
fig.show()

Producción:

cambiar las propiedades del gráfico de burbujas 2

También podemos cambiar muchas otras propiedades del gráfico de burbujas usando la función scatter() traza usando la función fig.update_traces(). Podemos ocultar las leyendas usando el argumento showlegend y estableciendo su valor en false.

Podemos cambiar el color de las barras de error, que por defecto es el mismo que el color de la burbuja usando el argumento error_y_color. Podemos cambiar el ancho de línea de la barra de error usando el argumento error_y_thickness.

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

import plotly.express as px

values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
    y=values,
    x=labels,
    width=500,
    height=400,
    color=labels,
    size=[5, 10, 15],
    hover_name=["B1", "B2", "B3"],
    text=["1", "2", "3"],
    error_y=[1, 2, 1],
    color_discrete_map={"a": "red", "b": "green"},
    title="Bubble Chart",
    opacity=0.7,
    marginal_x="histogram",
)
fig.update_traces(showlegend=False, error_y_color="red", error_y_thickness=5)
fig.show()

Producción:

cambiando los rastros del gráfico de burbujas

Consulte este enlace para obtener más detalles sobre los rastros de la función scatter().

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