A complete data story presentation: a narrative structure with 3-4 charts that build an argument, annotations that highlight the key insights, and a Streamlit app that lets stakeholders explore the data themselves.
Narrative Visualization Principles
Data without narrative is just numbers. The best data visualizations answer: what does this mean, why does it matter, and what should we do?
Three principles for narrative visualization:
- Lead with the conclusion. Tell viewers what they're about to see before they see it. "Revenue grew 40% — here's what drove it."
- Each chart answers one question. If you need a chart to do too much, split it into two.
- Annotations carry the story. A trend line without annotation is a shape. With annotation ("Q3 surge driven by enterprise deal") it's insight.
The dashboard vs. the story. Dashboards let users explore. Stories guide them to conclusions. Both are valuable. Know which you're building before you start — they're designed differently.
The Four-Chart Story Structure
Most business data stories need four charts in sequence:
Chart 1: The overview
Show the main metric over time. Set context.
Example: Monthly revenue, 18-month trend
Chart 2: The composition
Break it down. Show what makes up the number.
Example: Revenue by product/region/channel
Chart 3: The anomaly or insight
Highlight the interesting pattern or pivot point.
Example: One segment growing while others flat
Chart 4: The implication
Show what it means going forward.
Example: Projected growth if trend continues vs. if it doesn'tBuild a Complete Data Story
Build a Streamlit app that tells a complete story with real or sample data. Use this structure:
import streamlit as st
import plotly.express as px
st.title("Q3 2025 Business Review")
st.markdown("The bottom line: Revenue grew 22% YoY.")
st.subheader("1. Overall growth is strong")
# [line chart code here]
st.subheader("2. Enterprise segment is doing the work")
# [bar chart breakdown here]
st.subheader("3. SMB churn is the risk to watch")
# [trend chart highlighting divergence]
st.markdown("### What this means: Q4 target achievable if trends hold.")Notice: every chart section has a narrative header that states the conclusion, not just the metric. The story structure means a reader who only reads the headers knows everything important — the charts are supporting evidence.
What You Learned Today
- Three principles of narrative visualization: conclusion first, one question per chart, annotations carry meaning
- The four-chart business story structure: overview → composition → anomaly → implication
- How to mix Streamlit text with plotly charts to build a guided data narrative
- The difference between a dashboard (user explores) and a story (author guides)
Go Further on Your Own
- Take a real business dataset and build a four-chart story using the structure above. Share it with a colleague who doesn't know the data — can they follow the story without explanation?
- Add an AI interpretation layer: after each chart, use Claude API to generate a one-sentence insight based on the data values
- Build a presentation mode: use st.sidebar to toggle between 'story mode' (guided narrative) and 'explore mode' (filters and full data access)
Course Complete!
You finished all 5 days. Ready to go deeper?
Reserve Your Bootcamp SeatWant live instruction and hands-on projects? Join the AI bootcamp — 3 days, 5 cities.