A streamgraph is a variation of the stacked area graph. It displays the evolution of a numeric value for several groups. Each group is displayed around a central axis and edges are rounded resulting in a flowing and organic shape.
Matplotlib can build streamgraphs but there isn't any prebuilt function for it so be ready for quite a lot of code. 🍿
The process starts pretty much like for a stacked area graph. The
baseline parameter of the
stackplot() function is used to place groups around the X axis. The tricky part is to interpolate points between each value of the X axis to get the smooth visual. This is done thanks to the
Altair is a lesser know python library for datavizualization.
pandas library has a
divide() function that allows to apply this normalization easily.
💡 Stacked area chart as a workaround
It is important to note that the
stackplot() function of
matplotlib has a
baseline parameter. This parameter controls how groups are displayed around the x axis, what allows to mimic a streamgraph.