0
0
Matplotlibdata~20 mins

Trend lines on scatter plots in Matplotlib - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Trend Line Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of scatter plot with linear trend line
What will be the output of this code snippet that plots a scatter plot and adds a linear trend line?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])

plt.scatter(x, y)
coeffs = np.polyfit(x, y, 1)
trend = np.poly1d(coeffs)
plt.plot(x, trend(x), color='red')
plt.show()
AA scatter plot with points at (1,2), (2,4), (3,5), (4,4), (5,5) and a red straight line roughly fitting the points.
BA scatter plot with points and a blue curved line that passes through all points exactly.
CA scatter plot with points but no line is drawn.
DA scatter plot with points and a green horizontal line at y=3.
Attempts:
2 left
💡 Hint
Look at how np.polyfit with degree 1 creates a straight line fit.
data_output
intermediate
1:30remaining
Number of points above the trend line
Given the following data and trend line, how many points lie above the linear trend line?
Matplotlib
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
coeffs = np.polyfit(x, y, 1)
trend = np.poly1d(coeffs)
points_above = sum(y > trend(x))
print(points_above)
A4
B3
C1
D2
Attempts:
2 left
💡 Hint
Compare each y value to the trend line value at the same x.
visualization
advanced
2:30remaining
Identify the correct polynomial trend line plot
Which option shows the correct plot of a scatter plot with a quadratic (degree 2) trend line for the data below?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 4, 9, 16, 25])

plt.scatter(x, y)
coeffs = np.polyfit(x, y, 2)
trend = np.poly1d(coeffs)
plt.plot(x, trend(x), color='green')
plt.show()
AScatter points forming a perfect square curve with a green curved line passing exactly through all points.
BScatter points with a green straight line that does not fit the curve well.
CScatter points with a green curved line that misses all points.
DScatter points with a green horizontal line at y=10.
Attempts:
2 left
💡 Hint
Degree 2 polynomial fits a parabola shape.
🔧 Debug
advanced
2:00remaining
Identify the error in trend line code
What error will this code raise when trying to plot a trend line on a scatter plot?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 7, 11])

plt.scatter(x, y)
coeffs = np.polyfit(x, y, 1)
trend = np.poly1d(coeffs)
plt.plot(trend(x), x, color='blue')
plt.show()
ATypeError because plt.plot expects x and y arrays but got reversed.
BNo error; the plot shows a blue line but with axes swapped.
CValueError due to mismatched array lengths in plt.plot.
DSyntaxError due to missing parentheses.
Attempts:
2 left
💡 Hint
Check the order of arguments in plt.plot(x, y).
🚀 Application
expert
3:00remaining
Calculate and plot residuals from trend line
Given data points and a linear trend line, which code correctly calculates residuals and plots them as a bar chart?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 7, 11])
coeffs = np.polyfit(x, y, 1)
trend = np.poly1d(coeffs)
residuals = y - trend(x)

plt.bar(x, residuals)
plt.xlabel('x')
plt.ylabel('Residuals')
plt.title('Residuals from Linear Trend Line')
plt.show()
ACalculates residuals as trend(x) - y and plots a line plot instead of bars.
BCalculates residuals as y + trend(x) and plots bars with incorrect values.
CCalculates residuals as y - trend(x) and plots them correctly as bars at each x.
DCalculates residuals as y - trend(x) but plots a scatter plot instead of bars.
Attempts:
2 left
💡 Hint
Residuals are actual minus predicted values and bar plot shows magnitude.