Plotly Stacked Area Chart

This tutorial will discuss creating a stacked area chart using the stackgroup parameter of the scatter() function of Plotly.

Plotly Stacked Area Plot

A stacked area chart contains more than one area of different data frames. We can plot more than one area on the same graph using the stackgroup() parameter of the scatter() function.

After creating a scatter plot, we can add another area using the add_trace() function, which adds data in the same figure.

For example, let’s use some random data to create a scatter plot and then add another area using the add_trace() function. See the code below.

import plotly.graph_objects as go

x = [1, 2, 3, 4]
plot = px.Figure(go.Scatter(name='Data One',x = x,
    y = [100, 200, 500, 673],stackgroup='one'))

plot.add_trace(go.Scatter(
    name = 'Data Two',
    x = x,
    y = [56, 123, 982, 213],
    stackgroup='one'))

plot.show()

Output:

stacked are chart of random data

We can also change the normalization of the graph using the groupnorm argument and setting its value to percent for the sum of the stack group.

For example, let’s plot the above graph using normalized values. See the code below.

import plotly.graph_objects as go

x = [1, 2, 3, 4]
plot = px.Figure(go.Scatter(name='Data One',x = x,
    y = [100, 200, 500, 673],stackgroup='one',groupnorm='percent'))

plot.add_trace(go.Scatter(
    name = 'Data Two',
    x = x,
    y = [56, 123, 982, 213],
    stackgroup='one'))

plot.show()

Output:

stacked are chart with normalized values

We can use the add_trace() function to add another area into the scatter plot after it is created. Still, we can also do that while creating the figure by saving the data inside a variable and then using that variable to plot the stacked area plot.

For example, let’s create the stacked area plot again. See the code below.

import plotly.graph_objects as go

x = [1, 2, 3, 4]
data=[go.Scatter(name='Data One',x = x,
    y = [100, 200, 500, 673],stackgroup='one'),
    go.Scatter(
    name = 'Data Two',
    x = x,
    y = [56, 123, 982, 213],
    stackgroup='one')]

plot = px.Figure(data)
plot.show()

Output:

stacked are chart of random data

Write for us
DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - Plotly Plot

  • Plotly Pie Chart