Understand the idea
A visual mapping links a column to how each observation appears. A fixed appearance gives all observations the same style.
A small example
hue="club" assigns different colours to clubs. color="blue" makes every point blue.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(6, 4))
sns.scatterplot(data=df, x="hours", y="score", hue="club", ax=ax)
ax.set(title="Study club", xlabel="hours", ylabel="score")
fig.tight_layout()
plt.show()What each part does
data=df- the table supplying all mappings
x="hours", y="score"- horizontal and vertical variables
hue="club"- colour by category
Other choices for later exercises
style="club"- redundant shapes for accessibility
size="hours"- map magnitude to marker area
Your inputs
The editable setup on the right creates df. Run executes the setup and your work from top to bottom.
| student | club | hours | score | group |
|---|---|---|---|---|
| Ari | Art | 1 | 52 | A |
| Bo | Code | 3 | 71 | A |
| Cy | Art | 2 | 65 | B |
| Dee | Code | 4 | 82 | B |
| Eli | Art | 5 | 89 | A |
| Flo | Code | 3 | 76 | A |
| Gus | Art | 6 | 93 | B |
| Han | Code | 2 | 61 | B |
Your task · Follow
- Using df, compare hours and score with club mapped to colour.
- Keep point sizes and marker shapes constant.
- Use: scatterplot().
- Chart: title "Study club"; x "hours"; y "score".
Hint
Choose the observations first, then map the requested measurements to the chart.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(6, 4))
sns.scatterplot(data=df, x="hours", y="score", hue="club", ax=ax)
ax.set(title="Study club", xlabel="hours", ylabel="score")
fig.tight_layout()
plt.show()