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
Storytelling with visualization sequence
📖 Scenario: You are a data analyst working for a small bakery. You have sales data for three types of pastries over a week. Your manager wants to see a clear story of how each pastry sold each day, so they can decide what to bake more of next week.
🎯 Goal: Create a sequence of visualizations using matplotlib to show daily sales of three pastries. Start by setting up the data, then configure the days, plot the sales for each pastry, and finally display the combined chart to tell the sales story clearly.
📋 What You'll Learn
Use a dictionary to store sales data for three pastries: Croissant, Muffin, and Danish.
Create a list of days representing a week.
Plot a line chart for each pastry's sales over the days using matplotlib.
Display the final combined plot with a legend and labels.
💡 Why This Matters
🌍 Real World
Visualizing sales data helps businesses understand trends and make better decisions about inventory and marketing.
💼 Career
Data analysts and business intelligence professionals often create clear visual stories from data to communicate insights to managers and stakeholders.
Progress0 / 4 steps
1
DATA SETUP: Create sales data dictionary
Create a dictionary called sales with these exact entries: 'Croissant': [20, 22, 18, 25, 30, 28, 35], 'Muffin': [15, 18, 14, 20, 22, 25, 27], and 'Danish': [10, 12, 9, 15, 18, 20, 22].
Matplotlib
Hint
Use a dictionary with pastry names as keys and lists of daily sales as values.
2
CONFIGURATION: Create list of days
Create a list called days with these exact values: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'].
Matplotlib
Hint
Use a list with the exact day abbreviations as strings.
3
CORE LOGIC: Plot sales lines for each pastry
Import matplotlib.pyplot as plt. Use a for loop with variables pastry and sales_list to iterate over sales.items(). Inside the loop, plot days on the x-axis and sales_list on the y-axis with label=pastry.
Matplotlib
Hint
Remember to import matplotlib.pyplot as plt before plotting.
Use a for loop to plot each pastry's sales with labels.
4
OUTPUT: Display the final plot with labels and legend
Add x-axis label 'Day' and y-axis label 'Number Sold' using plt.xlabel() and plt.ylabel(). Add a title 'Pastry Sales Over a Week' with plt.title(). Show the legend with plt.legend(). Finally, display the plot with plt.show().
Matplotlib
Hint
Use plt.xlabel(), plt.ylabel(), plt.title(), plt.legend(), and plt.show() to complete the plot.
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
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 C
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
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 B
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?
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
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 A
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
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 A
Quick Check:
Separate plots + clear labels = better storytelling [OK]
Hint: Stack plots vertically with titles for clear story [OK]