Skip to learning content

DATA SCIENCE PYTHON PLAYGROUND

Data Foundations · A little practice goes a long way.

← Visualise lessonsTINY TABLES · REAL PYTHON · YOUR PACE
Compare observations · V11 · 8 MIN

Box plot

Read a median and interquartile spread.

Exercises within this concept

  1. FollowFollow the techniqueCurrent exercise
  2. ChangeAdapt a requirement
  3. TransferChoose and combine

Understand the idea

A box plot summarizes ordered values: the box covers the middle half and the line inside marks the median.

Concept sketch: box: Q1–Q3; line: median; dot: outlierQ1Q3box: Q1–Q3; line: median; dot: outlier
Illustration · not the exercise output

A small example

With Q1=10 and Q3=14, IQR=4. The usual fences are 4 and 20; whiskers end at observed values inside them.

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.boxplot(data=df, x="flavour", y="price", ax=ax)
ax.set(title="Candy shop", xlabel="flavour", ylabel="price")
fig.tight_layout()
plt.show()

What each part does

sns.boxplot
compact group distributions
IQR
upper quartile minus lower quartile

Your inputs

The editable setup on the right creates df. Run executes the setup and your work from top to bottom.

Candy shop · 6 synthetic rows
candyflavourpriceratingshelf
Gummy Bearfruity1.24.1A
Choco Popchocolate2.14.6B
Mint Bitemint1.53.8A
Berry Loopfruity2.84.4B
Cocoa Cubechocolate3.44.9A
Lemon Dropfruity1.84B

Your task · Follow

  1. Using df, call sns.boxplot with flavour on x and price on y.
  2. Chart: title "Candy shop"; x "flavour"; y "price".
Hint

Whiskers stop at observed values within the fences; flagged points are not automatically errors.

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.boxplot(data=df, x="flavour", y="price", ax=ax)
ax.set(title="Candy shop", xlabel="flavour", ylabel="price")
fig.tight_layout()
plt.show()
Your task · Follow
  1. Using df, call sns.boxplot with flavour on x and price on y.
  2. Chart: title "Candy shop"; x "flavour"; y "price".

Tab: indent · Shift+Tab: outdent · Esc, then Tab: leave editor

Edit Python. Control or Command plus Enter runs it. Tab indents by four spaces. Shift plus Tab outdents. Press Escape, then Tab or Shift plus Tab to leave the editor.

Each run executes all editor code in a fresh Python session. Display charts with plt.show().

Python starts when you open a lesson.

Output

Run your code to see what Python returns.