Gráfico de barras de Plotly

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

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

Gráfico de barras

Un gráfico de barras muestra los datos como barras rectangulares cuya altura es igual al valor que representa. Podemos usar la función bar() de Plotly para crear un gráfico de barras.

Un gráfico de barras tiene dos ejes; un eje representa los datos como barras rectangulares y el otro son las etiquetas. Podemos hacer que un gráfico de barras verticales sea horizontal intercambiando los ejes.

Deberíamos pasar los datos y las etiquetas dentro de la función bar() para crear el gráfico de barras. También podemos pasar un dataframe o un array dentro de la función bar().

Vamos a crear un gráfico de barras de datos aleatorios. Vea el código a continuación.

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(x=labels, y=value, height=400, width=500)
fig.show()

Producción:

diagrama de barras

El argumento width y height se utiliza para establecer el ancho y el alto de la figura en píxeles. Podemos dar a cada celda un color diferente usando el argumento color y un array de números de la misma longitud que los datos de entrada.

Podemos colocar texto dentro de cada celda usando el argumento text y una lista de cadenas que contienen el texto para cada celda. Podemos establecer la posición de cada base de celda usando el argumento base y una lista que contiene la posición de cada base de celda.

Podemos agregar barras de error a cada celda usando el argumento error_x para el eje x y el argumento error_y para el eje y. El valor del argumento debe ser una lista que contenga los valores de error numéricos para cada celda.

Podemos establecer la opacidad de cada celda de 0 a 1 usando el argumento opacity. Podemos establecer la orientación de las celdas en horizontal o vertical usando el argumento orientation y establecerlo en v para vertical y h para horizontal.

Podemos configurar cada eje a escala logarítmica usando el argumento log_x para el eje x y el argumento log_y para el eje y y establecer su valor en verdadero. También podemos establecer el título de la figura usando el argumento title() y una cadena que contenga el texto del título.

Cambiemos los argumentos mencionados anteriormente. Vea el código a continuación.

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=[1, 5, 10],
    text=["a", "b", "c"],
    base=[0, 15, 50],
    error_y=[5, 10, 15],
    opacity=0.8,
    orientation="v",
    title="plotly bar plot",
)
fig.show()

Producción:

cambiar las propiedades del gráfico de barras plotly

Por defecto, la función bar() le da a cada celda un color diferente, pero podemos establecer el color de cada celda usando el argumento color y color_discrete_map. Debemos pasar la etiqueta de cada celda dentro del argumento color y darle un color a cada etiqueta usando el argumento color_discrete_map para cambiar el color de cada celda.

Si no definimos el color de una etiqueta, la función bar() automáticamente le da un color aleatorio. Vamos a establecer el color de cada celda.

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=labels,
    color_discrete_map={
        "A": "green",
        "B": "cyan",
        "C": "yellow",
    },
)
fig.show()

Producción:

cambio de color del gráfico de barras

También podemos cambiar la escala o secuencia de colores predeterminada para establecer el color de cada celda usando el argumento color_continuous_scale. El valor del argumento debe ser una lista de colores CSS válidos. Podemos usar una secuencia de colores incorporada de Plotly como RdBu, Inferno, Jet, Hot, Rainbow y Sunset.

Cambiemos los colores del gráfico circular usando la secuencia de colores Rainbow. Vea el código a continuación.

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.show()

Producción:

cambiar la secuencia de colores del gráfico de barras

Para cambiar la secuencia de colores en el código, debemos cambiar el nombre de la secuencia de colores de Rainbow a Sunset. Haga clic en este enlace para obtener más información sobre la secuencia de colores en Plotly.

También podemos actualizar los rastros de la función bar() usando la función fig.update_traces(). Podemos usar el argumento text para establecer el texto que se muestra dentro de cada celda y establecer la posición del texto usando el argumento textposition. Las posiciones de texto admitidas son outside, inside, auto y none.

Podemos cambiar el tamaño de fuente del texto usando el argumento textfont_size, el ángulo del texto usando el argumento textangle y el color del texto usando el argumento textfont_color. Podemos cambiar las propiedades del marcador, como el ancho y el color de la línea, usando el argumento del marcador.

Agreguemos texto aleatorio a cada celda, demos a cada texto color, ángulo, tamaño de fuente, una línea alrededor de cada celda y establezcamos su color y ancho.

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 80]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.update_traces(
    text=["First", "Second", "Third"],
    textposition="outside",
    textfont_size=16,
    textangle=90,
    textfont_color="Red",
    marker=dict(line=dict(color="green", width=3)),
)
fig.show()

Producción:

cambiar las trazas de la gráfica de barras

Haga clic en este enlace para obtener más información sobre los seguimientos de la función bar().

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