📖 Scenario: Imagine you work in a company and want to show how different factors contribute to the final profit. A waterfall chart helps visualize how each part adds or subtracts from the total.
🎯 Goal: You will create a waterfall chart using matplotlib to display the step-by-step changes in profit.
📋 What You'll Learn
Create a dictionary with exact revenue and cost values
Create a list of labels for the waterfall steps
Calculate the cumulative values for the waterfall bars
Plot the waterfall chart using matplotlib with correct colors and labels
Display the final waterfall chart
💡 Why This Matters
🌍 Real World
Waterfall charts are used in business to show how different factors contribute to a total, such as profit or budget changes.
💼 Career
Data analysts and business intelligence professionals use waterfall charts to communicate financial and operational insights clearly.
Progress0 / 4 steps
1
Create the data dictionary
Create a dictionary called data with these exact entries: 'Sales': 35000, 'Returns': -5000, 'Marketing': -7000, 'Development': -8000, 'Profit': 15000.
Matplotlib
Hint
Use curly braces to create a dictionary with the exact keys and values.
2
Create the labels list
Create a list called labels with these exact strings in order: 'Sales', 'Returns', 'Marketing', 'Development', 'Profit'.
Matplotlib
Hint
Use square brackets to create a list with the exact strings in the given order.
3
Calculate cumulative values for the waterfall
Create a list called values that contains the values from data in the order of labels. Then create a list called cumulative that holds the cumulative sums of values starting with 0.
Matplotlib
Hint
Use a list comprehension to get values in order. Then use a for loop to build cumulative sums starting from zero.
4
Plot and display the waterfall chart
Import matplotlib.pyplot as plt. Use plt.bar to plot the waterfall bars with labels on x-axis and values as heights. Use bottom=cumulative to stack bars. Color positive bars green and negative bars red. Finally, call plt.show() to display the chart.
Matplotlib
Hint
Use plt.bar with bottom=cumulative and color bars green or red based on positive or negative values. Then call plt.show().
Practice
(1/5)
1. What is the main purpose of a waterfall chart in data visualization?
easy
A. To plot continuous data over time
B. To display the distribution of data points in categories
C. To show step-by-step changes from a starting value to an ending value
D. To compare multiple variables side by side
Solution
Step 1: Understand waterfall chart concept
A waterfall chart visually breaks down how an initial value changes through a series of positive and negative steps to reach a final value.
Step 2: Compare with other chart types
Other charts like histograms or line charts serve different purposes, such as distribution or trends over time, not stepwise changes.
Final Answer:
To show step-by-step changes from a starting value to an ending value -> Option C
Quick Check:
Waterfall charts = stepwise changes [OK]
Hint: Waterfall charts show how values add or subtract stepwise [OK]
A. The bottom list should be [0, 50, 80] because 30 + 50 = 80
B. The bottom list should be [0, 50, 30] to match cumulative sums
C. The color list length does not match values length
D. The values list contains negative numbers which is not allowed
Solution
Step 1: Analyze cumulative sums and bottoms
The cumulative sums are [50, 30, 60]. The bottoms are [0, 50, 60]. The third bottom should be 30 (cumulative[1]), not 60.
Step 2: Identify the mismatch
The bottom list does not correctly match the cumulative sums; it should be [0, 50, 30].
Final Answer:
The bottom list should be [0, 50, 30] to match cumulative sums -> Option B
Quick Check:
Bottoms = [0] + cumulative[:-1] [OK]
Hint: Bottom bars must start where previous bar ends [OK]
Common Mistakes:
Using incorrect cumulative sums for bottom
Mismatching color list length
Assuming negative values are invalid
5. You want to create a waterfall chart for monthly profit changes: start at 200, then +50, -30, +20, -10. Which code snippet correctly calculates the bottoms for the bars?
hard
A. bottoms = [0, 50, 20, -10, 0]
B. bottoms = [200, 250, 220, 240, 230]
C. bottoms = [200, 0, 0, 0, 0]
D. bottoms = [0, 200, 250, 220, 240]
Solution
Step 1: Calculate cumulative sums stepwise
Start at 200, then add +50 = 250, then -30 = 220, then +20 = 240, then -10 = 230.
Step 2: Determine bottoms for each bar
The first bar starts at 0, second at 200, third at 250, fourth at 220, fifth at 240 to show stepwise changes.
Final Answer:
bottoms = [0, 200, 250, 220, 240] -> Option D
Quick Check:
Bottoms = previous cumulative sums [OK]
Hint: Bottoms = cumulative sums before each step [OK]
Common Mistakes:
Starting bottoms at data values instead of zero
Using incorrect cumulative sums
Setting all bottoms to zero
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.