Gráfico de áreas en plotly

Datos de ejemplo

Considera los siguientes datos a modo de ejemplo:

import pandas as pd

# Datos
df = pd.DataFrame({
    "mes": ["Ene", "Feb", "Mar", "Abr", "May", "Jun"],
    "ingresos": [12, 15, 13, 18, 21, 19]})

Gráfico de áreas en plotly con area

Un gráfico de áreas es un gráfico de líneas con el espacio entre la línea y el eje X relleno, lo que enfatiza la magnitud de los valores a lo largo del tiempo. Usa la función area de plotly express con la misma sintaxis que line.

import plotly.express as px

fig = px.area(df, x = "mes", y = "ingresos")

fig.show()

Colores

Fija un color de relleno fijo con color_discrete_sequence, y el color/grosor de la línea con update_traces.

import plotly.express as px

fig = px.area(df, x = "mes", y = "ingresos",
             color_discrete_sequence = ["#4C72B0"])
fig = fig.update_traces(line = dict(width = 2))

fig.show()

Varios grupos

Mapea una columna categórica a color para dibujar un área por grupo. Por defecto plotly las apila unas sobre otras.

import plotly.express as px
import pandas as pd

# Datos de ejemplo
df2 = pd.DataFrame({
    "mes": ["Ene", "Feb", "Mar", "Abr", "May", "Jun"] * 2,
    "ingresos": [12, 15, 13, 18, 21, 19, 8, 9, 11, 10, 14, 15],
    "region": ["Norte"] * 6 + ["Sur"] * 6})

fig = px.area(df2, x = "mes", y = "ingresos", color = "region")

fig.show()

Grupos sin apilar

Para superponer los grupos en lugar de apilarlos, desactiva el stackgroup de la traza con update_traces(stackgroup = None), así cada área se dibuja desde cero de forma independiente.

import plotly.express as px
import pandas as pd

df2 = pd.DataFrame({
    "mes": ["Ene", "Feb", "Mar", "Abr", "May", "Jun"] * 2,
    "ingresos": [12, 15, 13, 18, 21, 19, 8, 9, 11, 10, 14, 15],
    "region": ["Norte"] * 6 + ["Sur"] * 6})

fig = px.area(df2, x = "mes", y = "ingresos", color = "region")
fig = fig.update_traces(stackgroup = None, fillcolor = None, opacity = 0.5)

fig.show()

Forma de la línea

Cambia line_shape a "spline" para una curva suavizada en lugar de segmentos rectos entre puntos.

import plotly.express as px

fig = px.area(df, x = "mes", y = "ingresos",
             line_shape = "spline")

fig.show()
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon
Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon

También te puede interesar