Vous avez économisé des centaines d'heures de processus manuels lors de la prévision de l'audience d'un jeu à l'aide du moteur de flux de données automatisé de Domo.
Stream Graphs: How to Read, Build, and Apply Them
Stream graphs display how multiple categories change over time by stacking flowing layers around a central axis rather than building from zero, making them ideal for spotting trends but unreliable for reading exact values. This guide covers when to use stream graphs, how to read them correctly, and how to build one in Excel or a BI platform like Domo.
Key findings for stream graphs
A stream graph is a flowing, organic visualization that shows how multiple categories change over time. It stacks layers around a central axis instead of building up from zero, which makes patterns easier to spot but exact values harder to read.
- Use this chart when: You have five to 15 categories, a continuous time axis, and the goal is showing trends rather than precise numbers.
- Choose a different chart when: Stakeholders need exact comparisons, the data has negative values, or the audience expects traditional charts.
- Primary decision it supports: Identify which categories are growing, shrinking, or emerging relative to the whole.
- Most common misuse: Presenting it in budget meetings where people need to read specific numbers.
- If you only remember one risk: Viewers will assume they can compare layer heights accurately. In practice, they usually can't.
- Best alternative if this fails: Use a stacked area chart for readable totals, or small multiples of line charts for category-by-category comparison.
What is a stream graph?
A stream graph is a type of stacked area chart where the layers flow around a shifting central baseline rather than stacking upward from zero. Each colored layer represents a category, and the thickness of that layer at any point shows its value at that moment in time.
The horizontal axis typically represents time. The vertical axis represents magnitude. But here's the catch: the baseline moves up and down to create the organic shape, so the y-axis isn't a fixed scale you can read from.
What makes this chart visually distinct is its "flowing river" appearance. Algorithms distribute layers above and below a central axis, creating a symmetrical shape. The goal is to minimize "wiggle," which is the jagged distortion that happens in standard stacked charts when layers of different sizes sit on top of each other.
You'll hear the terms "stream graph," "stream chart," and "streamgraph" used interchangeably. The format gained popularity after a 2008 New York Times visualization of movie box office revenue brought it into the mainstream.

When to use stream graphs for time-series patterns
You have a dataset with a time column and a dozen categories. You could build a line chart, a stacked area chart, or a stream graph. The right choice depends on what question you need to answer.
Stream graphs work well when you have roughly five to 15 categories and want to show overall volume trends and compositional shifts. They're excellent for editorial storytelling, trend exploration, and executive summaries where the pattern matters more than the decimal points.
They fall apart when stakeholders need to compare specific values. Because the baseline shifts constantly, viewers can't accurately judge whether one layer is larger than another at a given point. If someone asks, "Did Product A outsell Product B in the third quarter (Q3)?" the stream graph can mislead them.
A few other situations call for a different chart:
- Negative values: Stream graphs assume all values are positive. Negative values break the stacking logic.
- Few categories: If you have fewer than five categories, a standard stacked area chart is simpler and clearer.
- Unfamiliar audiences: With poor data literacy a top-five barrier to analytics success according to Gartner, spending five minutes explaining how to read the chart before discussing the data means you've lost the room.
How stream graphs work and how to read them
The most common failure happens when someone presents a stream graph and the first question is, "What does the y-axis mean?" The practical answer: it won't mean what you expect.
A stream graph stacks category values at each time point, just like a stacked area chart. The difference is the baseline. In a standard stacked area chart, the baseline is zero. In a stream graph, an algorithm computes the baseline to minimize visual distortion.
Three common baseline approaches exist:
- Zero: Layers stack upward from zero. Readable, but top layers distort when bottom layers fluctuate.
- Silhouette (centered): Layers center around a horizontal midline. Distributes distortion evenly but makes totals impossible to read.
- Wiggle: An algorithm adjusts the baseline to minimize oscillation. Produces the smoothest appearance but sacrifices precision entirely.
Layer ordering also matters. A common approach places the most volatile layers in the center and the most stable layers on the edges. This reduces visual noise.
To read a stream graph correctly, follow this sequence:
- Look at overall shape first. Is the total volume growing, shrinking, or stable?
- Identify dominant categories. Which layers are thickest?
- Spot emerging or declining categories. Look for layers that widen or narrow over time.
- Don't compare non-adjacent layers directly. You can only reliably compare a layer's thickness to itself over time.
Many people confuse the "middle bulge" illusion with actual growth. A category in the center may appear to expand simply because the layers above and below it are shifting. Always verify insights from the middle of the stream by checking the raw data.

Stream graph variations and tradeoffs
Not all stream graphs behave the same way. The choice of interactivity and ordering changes what viewers can learn.
Interactive stream graphs
Interactive versions let viewers hover over a layer to see its label and value, or click to isolate a single category. This mitigates the biggest weakness: legibility. Without interactivity, viewers often can't tell which layer is which, especially in the middle of the chart.
Use interactive versions for dashboards and web-based storytelling, especially as the migration from static reports to real-time dashboards accelerates. The tradeoff is that static exports lose the hover labels, so you need a fallback annotation strategy for PDFs and slides.
Static stream graphs
Static versions appear in print and presentations. Because viewers can't hover, you must annotate directly on the chart by labeling the largest layers and adding callouts for key moments.
The tradeoff is clutter. Limit labels to the most important categories to avoid creating a visual mess.
Sorted stream graphs
Layer ordering affects readability significantly. You can sort by total size (largest on the outside), by volatility (most volatile in the center), or by custom order to match your narrative.
No single ordering is correct. Changing the order changes the visual emphasis, which can unintentionally mislead viewers about which categories matter most.
Best practices for designing stream graphs
Each rule below prevents a specific misinterpretation.
- Limit categories to five to 15: Too few makes the chart overkill. Too many creates unreadable slivers.
- Use color to differentiate, not encode value: If you use light-to-dark shading, viewers assume darker means "more important."
- Annotate directly for static versions: Without labels, viewers will guess which layer is which—and guess wrong.
- Provide tooltips for interactive versions: Without them, viewers click randomly and get frustrated.
- Negative values don't work here: The stacking logic breaks with negative numbers.
- Include a data table for precision needs: Someone will screenshot the chart and make a budget decision based on an eyeballed number.
- Choose layer ordering intentionally: Default ordering may bury important categories in the middle.
Stream graph examples and what they reveal
A music platform wants to show how genre popularity shifted over a decade. The stream graph reveals that hip-hop and pop expanded dramatically while rock and country shrank proportionally. The overall stream height also grew, so even shrinking genres might have stable absolute numbers—but their share of attention declined. A grouped bar chart would show each genre separately but lose the sense of the whole ecosystem.
A marketing team tracks traffic sources during a product launch. The stream graph shows a surge in paid traffic during launch week, followed by sustained organic growth as word-of-mouth builds. Social traffic spikes briefly and fades. A line chart with five overlapping lines would be cluttered. A stacked area chart would make the social spike hard to see.
A support team categorizes tickets over six months. The stream graph reveals that "bugs" spiked after a software release, then declined as fixes rolled out. "Feature requests" grew steadily, suggesting engaged customers. A pie chart would show only a snapshot and miss the story entirely.
How to explain a stream graph in 30 seconds
Use this talk track when presenting:
- "This chart shows how the composition of [metric] changed over [time period]."
- "Each colored layer represents a category. The thickness shows its value at that moment."
- "The key comparison is how each layer's thickness changes over time—not how layers compare to each other."
- "The main takeaway is [specific insight]."
- "Don't conclude exact values from this chart—the y-axis isn't a fixed scale."
- "If we need precise comparisons, we should use a bar chart instead."
How to create a stream graph
Excel is great for quick prototypes, but it doesn't have a native stream graph chart type. You can approximate one with a stacked area chart and manual baseline adjustments, but it takes time to set up and maintain.
Your data needs three columns: a time column (date or period), a category column (the grouping variable), and a value column (the numeric measure). Data should be in "long" format with one row per time-category combination.
To approximate in Excel:
- Create a summary table with time as rows and categories as columns.
- Add a dummy series column that calculates the offset needed to center the stack.
- Insert a Stacked Area chart (Insert → Charts → Area → Stacked Area).
- Format the dummy series to have no fill and no line, making it invisible.
- Adjust colors and add labels.
This workaround doesn't produce a true wiggle-minimized stream graph. The baseline is centered but not optimized. For production use, consider a BI platform such as Domo, where you can build stream graphs with interactive tooltips and baseline options without manual offset calculations.
After building, verify that the total height at any time point equals the sum of all category values. If the chart looks off, check for missing data or incorrect baseline settings.
Limitations and when to use alternatives
Stream graphs have real constraints. The shifting baseline means viewers can't read precise values. Legibility degrades past 15 categories. Many business audiences find the format unfamiliar and confusing. Gartner predicts over 50% of CDAOs will fund data literacy programs by 2027, partly to close comprehension gaps like these. And negative values simply don't work.
Key takeaways for choosing stream graphs
Stream graphs excel at visualizing compositional change over time when you have many categories and want to emphasize patterns rather than precision. They work beautifully for storytelling and trend exploration.
But they're not a default choice. If stakeholders need exact values, if the data contains negative numbers, or if the audience expects traditional charts, something simpler will serve you better.
Before building one, ask: "What question does this chart need to answer?" If the answer involves precise numbers, choose a stacked area chart or small multiples. If it involves spotting trends and communicating the big picture, a stream graph is worth the tradeoff. Want to sanity-check your chart choice (or swap tips on making stream graphs actually readable in the real world)?
Frequently asked questions
What is the difference between a stream graph and a stacked area chart?
A stacked area chart builds layers from a fixed zero baseline, making totals readable but distorting top layers. A stream graph centers layers around a shifting baseline, distributing distortion evenly but sacrificing precise value reading.
Can I create a stream graph in Microsoft Excel?
Excel lacks a native stream graph option. You can approximate one using a stacked area chart with manual offset calculations, but this is tedious and doesn't produce true wiggle minimization. BI platforms handle this automatically.
How many categories work best in a stream graph?
Aim for five to fifteen categories. Fewer than five makes a stacked area chart simpler. More than fifteen creates unreadable slivers that clutter the visualization without adding insight.
Why can't I read exact values from a stream graph?
The baseline shifts at every time point, so the y-axis doesn't represent a fixed scale. You can compare a layer's thickness to itself over time, but you can't accurately compare two different layers at the same moment.
When should I use small multiples instead of a stream graph?
Use small multiples when precise comparison of each category's trend matters more than seeing the whole composition. Use a stream graph when you want to show both composition and total volume in a single, compact view.




