Beyond the Notebook: How to Turn Any Data Science Jupyter Notebook into Stunning, Animated Slide Decks
A Personal Journey: How Automating Slide Creation Enhanced My Data Science Storytelling

Why This Matters
This blog stems from a reflection I had looking back at my early career. When I was just starting out in data science, I had built a lot of analysis projectsโโโpowerful notebooks packed with charts, models, and insights. But back then, we didnโt have great tools to showcase that work easily. Everything stayed locked inside GitHub repositories and Jupyter notebooks. I remember wishing for a tool that could effortlessly convert those notebooks into clean, beautiful presentations I could use for interviews, portfolio showcases, or team demos.
Today, the tools are better. And so I wanted to build something accessibleโโโnot just for myself, but for anyone starting out in data science, machine learning, or analytics.
The idea is simple but powerful: Convert any data-focused Jupyter Notebookโโโespecially the ones with charts, exploratory data analysis, machine learning models, or important visual outputsโโโinto a polished, animated, speaker-ready presentation.
Itโs not about adding every little detail onto a slide. Itโs about:
Picking the right information
Building simple, beautiful slides
Adding speaker notes to tell your story
Using nice visuals, flow diagrams, and animations to guide attention
The goal is to make sure that your best projects donโt stay hidden. They should shine when you present themโโโwhether itโs for a job interview, a portfolio review, a client meeting, or even your reflections.
All you need to start is your Jupyter Notebook. Iโll show you exactly how to transform it step by step.
Over the past few years, Iโve poured hours into building data science and machine learning projectsโโโanalyzing datasets, fine-tuning models, and drawing insights. And where did most of that work end up?
Sitting quietly in GitHub repositories and Jupyter Notebooks.
Not because the work wasnโt good. Not because the insights werenโt helpful.
But because there was no story around them. No way for someone to quickly see the value without digging through dense code cells.
In interviews, collaborations, portfolio reviewsโโโsending over a raw notebook didnโt feel right. People want to understand your thinking, your results, and your impact.
The solution?
Turning my Jupyter notebooksโโโespecially the ones packed with valuable charts, models, and analysesโโโinto clean, animated, engaging slide decks.
Today, Iโm sharing exactly how to do it.
Not just for me, but for any data scientist, analyst, or ML engineer who wants their work to speak.
The Problem with Raw Notebooks
Great for exploration.
Great for yourself.
Terrible for presentations.
Terrible for non-technical audiences.
Terrible for first impressions.
When someone sees a raw .ipynb
, they see code, output dumps, half-finished notes. They don't see the journey of your thinking or the impact of your work.
In an interview or a project showcase, youโre not just evaluated on what you foundโโโyouโre evaluated on how you present it.
A great deck bridges that gap.
The Vision: From Data Visualization to Data Presentation
Imagine this:
You have clean, animated slides highlighting your best plots.
You have super smooth transitions between your data exploration, model building, and results.
Your speaker notes guides your narrative like a TED Talk.
Your charts that glow, move, or reveal insights layer by layer.
Your audiences leaning in, not tuning out.
Thatโs the shift weโre aiming for.
Why Focus on Data, Analysis, and Machine Learning?
Because these notebooks matter:
Customer churn prediction models.
Fraud detection systems.
Sentiment analysis pipelines.
Time-series forecasting dashboards.
Image classification case studies.
These arenโt โtoy projects.โ Theyโre real problem-solving frameworks.
But they die silently without a story.
Turning them into engaging presentations unlocks:
Faster portfolio reviews.
Deeper interview conversations.
Better teaching and mentoring tools.
Clearer thinking.
The Full System: Notebook to Deck
Build the App: Turn Jupyter Notebooks into Beautiful Slides
Letโs build a basic Streamlit app that can:
Upload a Jupyter notebook (.ipynb)
Parse Markdown cells and charts
Summarize major sections into slides
Generate clean, engaging slides with visuals and speaker notes
Weโll walk through the full code step-by-step.
Step 1: Install Required Packages
pip install streamlit nbformat matplotlib pillow openai
You need:
streamlit
: Web app frameworknbformat
: Read and parse notebooksmatplotlib
+Pillow
: Handle charts and imagesopenai
(optional): Summarize sections with GPT for better slides
Step 2: Full Streamlit App Code
# notebook_to_slides_app.py
import streamlit as st
import nbformat
import matplotlib.pyplot as plt
import base64
import tempfile
import os
from PIL import Image
# Optional: OpenAI for smarter summarization
# from openai import OpenAI
# Set up Streamlit page
st.set_page_config(page_title="Notebook to Slides", layout="wide")
st.title(" Jupyter Notebook to Animated Slides Converter")
uploaded_file = st.file_uploader("Upload your Jupyter Notebook (.ipynb)", type=["ipynb"])
if uploaded_file:
notebook = nbformat.read(uploaded_file, as_version=4)
slides = []
for cell in notebook.cells:
if cell.cell_type == 'markdown':
slides.append({"type": "markdown", "content": cell.source})
elif cell.cell_type == 'code':
for output in cell.get('outputs', []):
if output.output_type == 'display_data' and 'image/png' in output.data:
slides.append({"type": "image", "content": output.data['image/png']})
st.success(f"Extracted {len(slides)} slides from your notebook!")
# Preview slides
st.subheader("Slide Preview:")
for idx, slide in enumerate(slides):
st.markdown(f"### Slide {idx+1}")
if slide["type"] == "markdown":
st.markdown(slide["content"])
st.caption("*Speaker Notes: Summarize key point or transition.*")
elif slide["type"] == "image":
img_bytes = base64.b64decode(slide["content"])
st.image(img_bytes, use_column_width=True)
st.caption("*Speaker Notes: Explain what this chart shows and why it matters.*")
st.markdown("---")
# Download option
if st.button("Download Slide Content"):
output_text = ""
for idx, slide in enumerate(slides):
output_text += f"# Slide {idx+1}
"
if slide["type"] == "markdown":
output_text += slide["content"] + "
"
elif slide["type"] == "image":
output_text += "[Image Placeholder]
"
st.download_button("Download Markdown", output_text, file_name="slides.md", mime="text/markdown")
Here is how my app looks like:
Step 3: Block-by-Block Explanation
1. Upload and Parse Notebook
We upload a .ipynb
file and use nbformat
to read the content. We loop through cells and separate markdown and image outputs.
2. Build the Slides
Each Markdown cell = a text slide. Each chart = an image slide.
3. Add Speaker Notes
Under every slide preview, we suggest simple speaker notes (editable later).
4. Download Option
Users can download a Markdown file with basic slide content to reuse elsewhere.
Future Upgrades (Next Blog!)
Automatically beautify charts using
seaborn
,plotly
Integrate
openai
to smartly summarize long sectionsExport slides directly to Google Slides API
Insert free, high-quality visuals (unsplash, pexels API)
Add animated flowcharts between stages (EDA โ Feature Engineering โ Modeling)
Letโs deep dive into the steps:
1. Prepare the Notebook
Before you export anything, structure your notebook.
Use clean, markdown headers for each section.
Make sure your charts have titles, labels, legends.
Clean up old experimental code cells.
Summarize key findings at the end of each phase.
Think: each notebook cell = 1 slide idea.
2. Export Charts and Visuals
Use .savefig()
or Plotly
exports:
plt.savefig('churn_correlation.png', dpi=300)
Save in high-resolution formats:
PNG for raster images
SVG for scalable graphics
3. Build the Narrative
Structure the story simply:
Problem Statement
Data Overview
Exploration Highlights
Feature Engineering
Modeling Choices
Results Summary
Future Work
1 Slide = 1 Key Idea.
Keep each slide focused. No walls of code.
4. Create Slides (With Animation)
Now we create slides, and here are some tips for good animation.
Animation Tips:
Fade-in charts sequentially.
Slide transitions between model phases.
Animate metric changes (before vs. after models).
Keep it smoothโโโnot distracting.
5. Add Speaker Notes
Under each slide, write 2โ3 lines explaining:
Why this step mattered
What decision you made
What the chart shows
This prepares you for live talks, videos, interviews.
Sample Slide Flow (With Speaker Notes)
Slide 1: Title Slide
Content: โCustomer Churn Prediction: End-to-End Data Science Projectโ
Speaker Notes:
โToday, Iโll walk you through a full machine learning projectโโโpredicting customer churn using behavioral and demographic data.โ
Slide 2: Data Overview
Content:
7,043 customers
21 features
26% churn rate
(Pie chart visual showing churn split)
Speaker Notes:
โOur dataset covers over 7,000 customers. About 26% churned historically, meaning class imbalance plays a key role in our modeling.โ
Slide 3: Exploration Highlights
Content:
Tenure and Contract Type are top predictors
Monthly charges correlate with churn
(Animated scatter plot fade-in)
Speaker Notes:
โShort-tenure customers with month-to-month contracts and high monthly charges are at a significantly higher churn risk.โ
Slide 4: Modeling Approach
Content:
Logistic Regression
Random Forest
XGBoost (best performer)
(Flowchart with arrows moving between models)
Speaker Notes:
โWe started simple with Logistic Regression for baseline interpretability, then moved to ensemble models for performance gains.โ
Slide 5: Key Results
Content:
Logistic Regression: 78%
Random Forest: 85%
XGBoost: 87%
(Animated bar chart growing as model accuracy improves)
Speaker Notes:
โWith XGBoost, we achieved an 87% accuracy rateโโโa 9% improvement over our baseline logistic model.โ
Slide 6: Future Work
Content:
Deploy model using Streamlit
Monitor live predictions
Retrain quarterly
(Simple roadmap animation)
Speaker Notes:
โNext steps include deployment and continuous feedback integration to refine the model over time.โ
Bonus Tools
nbconvertโโโConvert notebook to Markdown, slides
RISEโโโTurn Jupyter into live presentations
ManimโโโAnimate complex mathematical visuals
FlourishโโโNo-code animated charts
Design Tips for Beautiful Data Decks
Minimalist first.
Consistent fonts, colors, styles.
One idea per slide.
Use icons instead of text walls.
Show results with visuals, not words.
Every 4โ5 slides: Re-anchor the audience. (โHereโs where we areโฆโ)
Why This Matters
Your portfolio isnโt just code anymore. Your interviews arenโt just answers anymore.
Youโre not just showing workโโโyouโre showing how you think, how you tell a story, and how you drive action with data.
Turning your notebook into a story:
Builds credibility
Builds clarity
Builds connection
Here is the data visualization notebook that was used; it also has a data science component to it with the clustering piece, but feel free to use it in the central GitHub repository here. You can view the presentation generated here in the Github repo as well here. Keep in mind that you will need to download it since you canโt view PPTs in GitHub.
Here is how my slides look like:
Final Thoughts
Let me be honest. I built this because I needed it. When I was first starting out in data science, I had amazing projects inside Jupyter notebooksโโโcrisp visuals, complex models, useful insights. But when it came time to explain my work? Iโd freeze. Not because the work wasnโt good, but because it didnโt speak for itself.
Thatโs what this app is for: to help you make your work speak. Because presentation matters. A great notebook is powerfulโโโbut if no one can follow it, if no one can see what you didโโโthen itโs just another file sitting in your GitHub.
Sure, the slides this app generates arenโt a finished product. But thatโs not the point. What it gives you is something even more valuable: a strong starting point. With slide titles, visual suggestions, and speaker notes generated automatically from your notebook, you now have a framework to shape and polish into something outstanding.
Because presentation does take some work. But what you need is the right guidance. This app offers that guidanceโโโit makes the entire process of creating slides so much faster. You donโt have to start from zero. If you can generate 70% of a presentation in minutes, you now have the time and creative energy to bring it to life.
Thatโs how we move from being just someone who knows the dataโฆ to someone who leads with it.
Whether youโre prepping for an interview, a portfolio review, or a team presentation, this tool helps you go from โI have something goodโ to โLet me show you something great.โ
Thatโs the difference between a junior contributor and someone whoโs ready to step into the spotlight.