Stacked Area Chart





A stacked area chart displays the evolution of a numeric variable for several groups. It is very close to a area chart. This section displays many examples build with R and ggplot2. Have a look to data-to-viz.com if want to learn more about line chart theory.

Note on area chart

This section is tightly linked with other sections. A line chart is the same but doesn't fill the surface between the line and the X axis. A connected scatterplot is almost the same thing, but each observation is represented as a dot. More generally, the time series section can interest you.

connected scatter line chart time series



Step by step with ggplot2

Drawing a stacked area chart with ggplot2 is pretty straightforward once you've understood how to build an area chart with geom_area(). Basically, you just have to provide a categorical to the fill argument to split the area by groups.





Interactive version: plotly

The ggplotly() function of the plotly library makes it a breeze to build an interactive version. Try to hover circles to get a tooltip, or select an area of interest for zooming. Double click to reinitialize.

Get code




Alternatives to stacking

Stacking suffers several issues. In the left chart below, try to estimate how the green group evolved during the period? You can read more about this acaveat here. Depending what your final goal is, it can be better to use small multiple or unstacked line chart.

Learn more





Interactive version: dygraph

The dygraph package is dedicated to time series visualization. It offers zooming, hovering, minimaps and much more. Visit the time series section that is dedicated to it for more.

Get code Time series section




Step by step with base R

In base R, the combination of the plot() and the polygon() functions allows to build quality area charts.

Related chart types


Line plot
Area
Stacked area
Streamchart
Time Series