You are reading documentation for the unreleased version of Matplotlib. Try searching for the released version of this page instead?
Applications are open for the 2018 John Hunter Matplotlib Summer Fellowship. Apply now!
Version 2.2.2.post1336+gc1f0072e7
Fork me on GitHub


matplotlib.pyplot.stackplot(x, *args, data=None, **kwargs)[source]

Draws a stacked area plot.

x : 1d array of dimension N
y : 2d array (dimension MxN), or sequence of 1d arrays (each dimension 1xN)

The data is assumed to be unstacked. Each of the following calls is legal:

stackplot(x, y)               # where y is MxN
stackplot(x, y1, y2, y3, y4)  # where y1, y2, y3, y4, are all 1xNm
baseline : [‘zero’ | ‘sym’ | ‘wiggle’ | ‘weighted_wiggle’]

Method used to calculate the baseline:

  • 'zero': Constant zero baseline, i.e. a simple stacked plot.
  • 'sym': Symmetric around zero and is sometimes called ‘ThemeRiver’.
  • 'wiggle': Minimizes the sum of the squared slopes.
  • 'weighted_wiggle': Does the same but weights to account for size of each layer. It is also called ‘Streamgraph’-layout. More details can be found at
labels : Length N sequence of strings

Labels to assign to each data series.

colors : Length N sequence of colors

A list or tuple of colors. These will be cycled through and used to colour the stacked areas.

**kwargs :

All other keyword arguments are passed to Axes.fill_between().

list : list of PolyCollection

A list of PolyCollection instances, one for each element in the stacked area plot.