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]})
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()
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()
También te puede interesar