📖 Scenario: You work as a data analyst for a company that wants to visualize the sales performance of different products over several months. Your manager asks you to create a spine chart to compare the sales trends clearly.
🎯 Goal: Build a spine chart using matplotlib to show sales data for three products over four months. You will create the data, configure the plot, draw the spine chart, and display the result.
📋 What You'll Learn
Create a dictionary called sales_data with sales numbers for three products over four months.
Create a list called months with the names of the four months.
Use matplotlib to plot a spine chart comparing the sales trends.
Label the x-axis with the months and add a legend for the products.
Display the final spine chart.
💡 Why This Matters
🌍 Real World
Spine charts help compare multiple categories over time or other continuous variables, making trends easy to spot for business decisions.
💼 Career
Data analysts and scientists often create spine charts to visualize and communicate trends clearly to stakeholders.
Progress0 / 4 steps
1
Create the sales data dictionary
Create a dictionary called sales_data with these exact entries: 'Product A': [150, 200, 250, 300], 'Product B': [180, 210, 230, 280], and 'Product C': [100, 150, 200, 250].
Matplotlib
Hint
Use curly braces to create a dictionary. Each product name is a key, and the sales numbers are lists as values.
2
Create the months list
Create a list called months with these exact strings: 'Jan', 'Feb', 'Mar', and 'Apr'.
Matplotlib
Hint
Use square brackets to create a list with the exact month names as strings.
3
Plot the spine chart
Import matplotlib.pyplot as plt. Use a for loop with variables product and sales to iterate over sales_data.items(). Inside the loop, plot the sales data using plt.plot(months, sales, marker='o', label=product). Then add a legend with plt.legend().
Matplotlib
Hint
Remember to import matplotlib.pyplot as plt first. Use a for loop to plot each product's sales with markers and labels.
4
Display the spine chart
Add plt.xlabel('Months') and plt.ylabel('Sales') to label the axes. Then use plt.title('Sales Trends Spine Chart') to add a title. Finally, display the plot with plt.show().
Matplotlib
Hint
Use plt.xlabel, plt.ylabel, and plt.title to add labels and title. Use plt.show() to display the chart.
Practice
(1/5)
1. What is the main purpose of a spine chart in matplotlib?
easy
A. To connect data points with lines to compare two groups
B. To display data as a pie chart
C. To create 3D surface plots
D. To show only individual data points without connections
Solution
Step 1: Understand spine chart basics
A spine chart connects data points with lines to compare two groups visually.
Step 2: Compare with other chart types
Pie charts and 3D plots serve different purposes, not spine charts.
Final Answer:
To connect data points with lines to compare two groups -> Option A
Quick Check:
Spine chart = line connection for comparison [OK]
Hint: Spine charts connect points to compare groups visually [OK]
Common Mistakes:
Confusing spine charts with pie charts
Thinking spine charts show 3D data
Assuming spine charts show unconnected points
2. Which of the following is the correct way to create a spine chart using matplotlib?
easy
A. plt.bar(x, y)
B. plt.scatter(x, y)
C. plt.plot(x, y, marker='o', linestyle='-')
D. plt.pie(y)
Solution
Step 1: Identify spine chart syntax
Spine charts use lines connecting points, so plt.plot with markers and line style is correct.
Step 2: Eliminate other plot types
Bar, scatter, and pie charts do not connect points with lines.
Final Answer:
plt.plot(x, y, marker='o', linestyle='-') -> Option C
Quick Check:
Line plot with markers = spine chart [OK]
Hint: Use plt.plot with markers and lines for spine charts [OK]
D. Two lines with different markers connecting points for Group 1 and Group 2
Solution
Step 1: Analyze the plot commands
Two plt.plot calls with markers 'o' and 's' create two lines with different markers.
Step 2: Understand legend and show
Legend labels groups, plt.show() displays the plot with connected lines.
Final Answer:
Two lines with different markers connecting points for Group 1 and Group 2 -> Option D
Quick Check:
Multiple plt.plot with markers = multiple spine lines [OK]
Hint: Multiple plt.plot with markers create spine chart lines [OK]
Common Mistakes:
Expecting bar or scatter plot output
Thinking plt.plot without plt.show() shows plot
Confusing markers with bar heights
4. Identify the error in this spine chart code:
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y, marker='o')
plt.plot(x, y, marker='s')
plt.show()
medium
A. No error; code runs and shows two overlapping lines
B. Missing linestyle argument causes error
C. Markers must be the same for all plots
D. x and y lists must be numpy arrays
Solution
Step 1: Check syntax and parameters
plt.plot accepts marker without linestyle; default line style is solid.
Step 2: Understand plot behavior
Two plots with same data but different markers overlap; no error occurs.
Final Answer:
No error; code runs and shows two overlapping lines -> Option A
Quick Check:
Different markers allowed; no error [OK]
Hint: Different markers allowed; no linestyle needed [OK]
Common Mistakes:
Assuming missing linestyle causes error
Thinking markers must match
Believing lists must be numpy arrays
5. You want to create a spine chart comparing sales of two products over 4 quarters with different colors and markers. Which code snippet correctly achieves this?
hard
A. plt.bar(quarters, sales1, color='blue')
plt.bar(quarters, sales2, color='red')
plt.show()