Analysis of Brent Crude Futures Data Visualization
Built this in matplotlib using 1.89 million rows of 1-minute Brent crude futures data (2019–2026), resampled to daily closes. A few deliberate design decisions worth discussing.
Color Encoding
The central choice was year-based color encoding rather than a single continuous line. On a traditional monochrome chart, the COVID crash and Ukraine spike read as anomalies disrupting an otherwise continuous series. With year coloring, something more interesting emerges: the post-COVID recovery (2020–2021) and the war-premium unwind (2022–2023) cluster visually as distinct regimes rather than noise around a trend. The structure of how prices moved — not just where — becomes legible.
Background and Canvas
Dark background was deliberate. Commodity chart colors tend to be muted on white; dark canvas lets the year hues breathe without competing with gridlines.
Layout and Volume Analysis
Dual-panel layout (price above, volume below, color-matched by year): volume tells a different story than price alone. The 2022 spike looks dramatic on price; volume in that period was actually thinner than 2020, which changes the interpretation.
Key Anchors
- Period low $19.60 on April 21, 2020 — COVID demand collapse.
- Period high $124.56 on March 8, 2022 — Ukraine invasion.
- 2023–2024 was a slow grind from ~$95 back toward $70.
- 2026 creeping above $100 again.
Suggestions for Improvement
One thing I'd change: the vertical event markers are labeled with raw date strings rather than short annotations — they add precision but reduce at-a-glance readability.
Discussion Question
What's your rule of thumb for when categorical color encoding earns its complexity cost versus when it just adds visual noise?