Storytelling with visualization sequence in Matplotlib - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When we create a sequence of visualizations, each step adds work. We want to know how the time to draw all visuals grows as we add more steps.
How does adding more charts affect the total time to show the story?
Analyze the time complexity of the following code snippet.
import matplotlib.pyplot as plt
for i in range(n):
plt.figure()
plt.plot(range(100))
plt.title(f"Step {i+1}")
plt.show()
This code creates and shows n separate line charts, each with 100 points, one after another.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Loop runs n times to create and show each plot.
- How many times: Exactly n times, once per visualization step.
Each new visualization adds a fixed amount of work. So, if we double the number of steps, the total work roughly doubles.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 times the work to draw 10 charts |
| 100 | 100 times the work to draw 100 charts |
| 1000 | 1000 times the work to draw 1000 charts |
Pattern observation: The total work grows directly with the number of visualization steps.
Time Complexity: O(n)
This means the time to complete the storytelling grows in a straight line as we add more visual steps.
[X] Wrong: "Adding more charts won't affect total time much because each chart is simple."
[OK] Correct: Even simple charts take time, and doing many of them adds up linearly, so total time grows with the number of charts.
Understanding how adding steps affects total time helps you explain performance in real projects. It shows you can think about how work grows as data or visuals increase.
"What if each visualization step plotted data that grows with i (like i*100 points)? How would the time complexity change?"
Practice
Solution
Step 1: Understand storytelling with visualization
Storytelling with visualization means showing data in parts to explain it clearly.Step 2: Purpose of multiple plots
Using multiple plots helps break the data into smaller pieces to tell a clear story step-by-step.Final Answer:
To break data into parts and explain it step-by-step -> Option CQuick Check:
Storytelling = breaking data into parts [OK]
- Thinking colors are the main reason for multiple plots
- Believing multiple plots reduce data size
- Ignoring the importance of titles and labels
Solution
Step 1: Understand plt.subplot parameters
plt.subplot(rows, columns, plot_number) arranges plots in a grid.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.Final Answer:
plt.subplot(1, 2, 1) and plt.subplot(1, 2, 2) -> Option BQuick Check:
One row, two columns = plt.subplot(1, 2, x) [OK]
- Using wrong plot numbers like 3 in a 2-plot layout
- Mixing rows and columns incorrectly
- Trying to create more plots than grid allows
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()Solution
Step 1: Understand plt.subplot(2, 1, x)
This creates 2 rows and 1 column, stacking plots vertically.Step 2: Titles assigned to each subplot
First plot gets 'Top Plot', second gets 'Bottom Plot', shown stacked vertically.Final Answer:
Two plots stacked vertically with titles 'Top Plot' and 'Bottom Plot' -> Option DQuick Check:
2 rows, 1 column = vertical stack [OK]
- Thinking plots are side by side with (2,1,x)
- Assuming plt.title() causes error if used twice
- Expecting one plot instead of two
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()
Solution
Step 1: Understand subplot numbering in 2x2 grid
2 rows and 2 columns means subplot numbers 1 to 4 only.Step 2: Check subplot number 5 usage
Using subplot(2, 2, 5) is invalid and causes an error.Final Answer:
Using subplot number 5 in a 2x2 grid causes an error -> Option AQuick Check:
Max subplot number = rows*columns = 4 [OK]
- Thinking plt.plot() can't be inside subplot
- Believing plt.figure() is mandatory before subplots
- Ignoring subplot numbering limits
Solution
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.Step 2: Importance of titles and labels
Clear titles and labels help the audience understand each year's data easily.Final Answer:
Create 3 subplots in one column using plt.subplot(3, 1, x) with clear titles and labels -> Option AQuick Check:
Separate plots + clear labels = better storytelling [OK]
- Plotting all data in one plot without labels
- Skipping titles and labels reduces clarity
- Showing only last year's data misses story
