Bird
Raised Fist0
Matplotlibdata~10 mins

Storytelling with visualization sequence in Matplotlib - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Storytelling with visualization sequence
Start: Define data
Create first plot
Show plot to audience
Create second plot
Show second plot
Add narrative text
Repeat for more plots
End: Complete story
This flow shows how to build a story by creating and showing plots one after another, adding text to guide the audience.
Execution Sample
Matplotlib
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [30, 25, 20, 10]

plt.plot(x, y1)
plt.title('First plot')
plt.show()

plt.plot(x, y2)
plt.title('Second plot')
plt.show()
This code creates two line plots one after another to tell a simple story with data.
Execution Table
StepActionPlot CreatedPlot TitleOutput
1Define x and y1 dataNoN/AData ready
2Plot x vs y1YesFirst plotLine plot with y1 values
3Show first plotYesFirst plotPlot displayed to user
4Plot x vs y2YesSecond plotLine plot with y2 values
5Show second plotYesSecond plotPlot displayed to user
6End of sequenceNoN/AStory complete
💡 All plots created and shown, storytelling sequence complete
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 4Final
xundefined[1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4]
y1undefined[10, 20, 25, 30][10, 20, 25, 30][10, 20, 25, 30][10, 20, 25, 30]
y2undefinedundefinedundefined[30, 25, 20, 10][30, 25, 20, 10]
plotnonenoneplot with y1plot with y2plot with y2
Key Moments - 2 Insights
Why do we call plt.show() after each plot?
Calling plt.show() displays the current plot and pauses the code until the window is closed, so each plot appears separately as shown in steps 3 and 5.
What happens if we plot multiple lines without calling plt.show() in between?
Without plt.show() between plots, all lines appear on the same figure, not as separate plots. The execution_table shows separate plots because plt.show() is called after each.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the plot title at Step 4?
AFirst plot
BNo title
CSecond plot
DUndefined
💡 Hint
Check the 'Plot Title' column for Step 4 in the execution_table.
At which step is the first plot shown to the user?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Action' and 'Output' columns in the execution_table for when the plot is displayed.
If we remove plt.show() after the first plot, what changes in the execution?
ABoth plots appear on the same figure
BNo plots appear
COnly the first plot appears
DPlots appear in reverse order
💡 Hint
Refer to the key moment about plt.show() and how it separates plots.
Concept Snapshot
Storytelling with visualization sequence:
- Prepare data
- Create a plot
- Call plt.show() to display it
- Add narrative or next plot
- Repeat for multiple visuals
- Each plt.show() pauses and shows current plot
- Helps guide audience step-by-step
Full Transcript
This lesson shows how to tell a story using a sequence of visualizations with matplotlib. We start by defining data arrays. Then we create the first plot and call plt.show() to display it. This pauses the code and shows the plot to the audience. Next, we create a second plot and show it again. Each plot is shown separately, helping the audience focus on one part of the story at a time. Calling plt.show() after each plot is important to separate visuals. Without it, all lines would appear on the same figure. This step-by-step approach helps make data stories clear and engaging.

Practice

(1/5)
1. What is the main purpose of using multiple plots in a storytelling visualization sequence?
easy
A. To make the plot colors more vibrant
B. To reduce the size of the data
C. To break data into parts and explain it step-by-step
D. To avoid using titles and labels

Solution

  1. Step 1: Understand storytelling with visualization

    Storytelling with visualization means showing data in parts to explain it clearly.
  2. Step 2: Purpose of multiple plots

    Using multiple plots helps break the data into smaller pieces to tell a clear story step-by-step.
  3. Final Answer:

    To break data into parts and explain it step-by-step -> Option C
  4. Quick Check:

    Storytelling = breaking data into parts [OK]
Hint: Multiple plots show data in steps for clear explanation [OK]
Common Mistakes:
  • Thinking colors are the main reason for multiple plots
  • Believing multiple plots reduce data size
  • Ignoring the importance of titles and labels
2. Which of the following is the correct way to create two plots side by side using matplotlib?
easy
A. plt.subplot(2, 1, 1) and plt.subplot(2, 1, 3)
B. plt.subplot(1, 2, 1) and plt.subplot(1, 2, 2)
C. plt.subplot(1, 1, 1) and plt.subplot(1, 1, 2)
D. plt.subplot(3, 1, 1) and plt.subplot(3, 1, 2)

Solution

  1. Step 1: Understand plt.subplot parameters

    plt.subplot(rows, columns, plot_number) arranges plots in a grid.
  2. Step 2: Create two side-by-side plots

    One row and two columns means plt.subplot(1, 2, 1) and plt.subplot(1, 2, 2) for two plots side by side.
  3. Final Answer:

    plt.subplot(1, 2, 1) and plt.subplot(1, 2, 2) -> Option B
  4. Quick Check:

    One row, two columns = plt.subplot(1, 2, x) [OK]
Hint: Use plt.subplot(1, 2, x) for two side-by-side plots [OK]
Common Mistakes:
  • Using wrong plot numbers like 3 in a 2-plot layout
  • Mixing rows and columns incorrectly
  • Trying to create more plots than grid allows
3. What will be the output arrangement of the following code?
import matplotlib.pyplot as plt
plt.subplot(2, 1, 1)
plt.title('Top Plot')
plt.subplot(2, 1, 2)
plt.title('Bottom Plot')
plt.show()
medium
A. Error because plt.title() is used twice
B. Two plots side by side with titles 'Top Plot' and 'Bottom Plot'
C. One plot with both titles overlapping
D. Two plots stacked vertically with titles 'Top Plot' and 'Bottom Plot'

Solution

  1. Step 1: Understand plt.subplot(2, 1, x)

    This creates 2 rows and 1 column, stacking plots vertically.
  2. Step 2: Titles assigned to each subplot

    First plot gets 'Top Plot', second gets 'Bottom Plot', shown stacked vertically.
  3. Final Answer:

    Two plots stacked vertically with titles 'Top Plot' and 'Bottom Plot' -> Option D
  4. Quick Check:

    2 rows, 1 column = vertical stack [OK]
Hint: Rows first, columns second in plt.subplot for layout [OK]
Common Mistakes:
  • Thinking plots are side by side with (2,1,x)
  • Assuming plt.title() causes error if used twice
  • Expecting one plot instead of two
4. Identify the error in this code that tries to create a 2x2 grid of plots:
import matplotlib.pyplot as plt
plt.subplot(2, 2, 1)
plt.plot([1,2,3])
plt.subplot(2, 2, 5)
plt.plot([3,2,1])
plt.show()
medium
A. Using subplot number 5 in a 2x2 grid causes an error
B. plt.plot() cannot be used inside subplot
C. Missing plt.figure() before subplots
D. No error, code runs fine

Solution

  1. Step 1: Understand subplot numbering in 2x2 grid

    2 rows and 2 columns means subplot numbers 1 to 4 only.
  2. Step 2: Check subplot number 5 usage

    Using subplot(2, 2, 5) is invalid and causes an error.
  3. Final Answer:

    Using subplot number 5 in a 2x2 grid causes an error -> Option A
  4. Quick Check:

    Max subplot number = rows*columns = 4 [OK]
Hint: Subplot number must be ≤ rowsxcolumns [OK]
Common Mistakes:
  • Thinking plt.plot() can't be inside subplot
  • Believing plt.figure() is mandatory before subplots
  • Ignoring subplot numbering limits
5. You want to tell a story showing sales growth over 3 years with separate plots for each year. Which approach best helps your audience understand the story clearly?
hard
A. Create 3 subplots in one column using plt.subplot(3, 1, x) with clear titles and labels
B. Plot all years on one plot without labels
C. Create 1 subplot and plot only the last year's data
D. Use plt.subplot(1, 3, x) but skip titles and labels

Solution

  1. Step 1: Choose subplot layout for storytelling

    Using 3 rows and 1 column (plt.subplot(3, 1, x)) stacks plots vertically, showing each year clearly.
  2. Step 2: Importance of titles and labels

    Clear titles and labels help the audience understand each year's data easily.
  3. Final Answer:

    Create 3 subplots in one column using plt.subplot(3, 1, x) with clear titles and labels -> Option A
  4. Quick Check:

    Separate plots + clear labels = better storytelling [OK]
Hint: Stack plots vertically with titles for clear story [OK]
Common Mistakes:
  • Plotting all data in one plot without labels
  • Skipping titles and labels reduces clarity
  • Showing only last year's data misses story