Bird
Raised Fist0
Matplotlibdata~3 mins

Why Broken axes concept in Matplotlib? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

See how a simple break in the axis can reveal hidden stories in your data!

The Scenario

Imagine you have a graph showing sales data where most values are small, but a few are extremely large. Trying to fit all data on one scale makes the small values look squished and unreadable.

The Problem

Manually adjusting the scale or cutting out parts of the axis means losing important details or confusing the viewer. It's slow to tweak and easy to make mistakes that hide the real story in the data.

The Solution

The broken axes concept lets you split the axis into parts with a visible break. This way, you can show small and large values clearly on the same plot without distortion or confusion.

Before vs After
✗ Before
plt.plot(data)
plt.ylim(0, max(data))  # all data squeezed
✓ After
from brokenaxes import brokenaxes
bax = brokenaxes(ylims=((0, 10), (90, 100)))
bax.plot(range(len(data)), data)
What It Enables

It enables clear visualization of data with very different scales in one easy-to-understand graph.

Real Life Example

Showing monthly expenses where most months are under $1000 but one month has a $10,000 emergency expense, all visible in one chart.

Key Takeaways

Manual axis scaling can hide important data details.

Broken axes split the axis to show different ranges clearly.

This makes complex data easier to understand at a glance.

Practice

(1/5)
1. What is the main purpose of using broken axes in matplotlib plots?
easy
A. To skip unimportant data ranges and focus on key parts
B. To add 3D effects to the plot
C. To change the color scheme automatically
D. To animate the plot over time

Solution

  1. Step 1: Understand the concept of broken axes

    Broken axes are used to skip over parts of the axis where data is not important or has large gaps.
  2. Step 2: Identify the main purpose

    This helps to focus on important data ranges without showing the entire axis continuously.
  3. Final Answer:

    To skip unimportant data ranges and focus on key parts -> Option A
  4. Quick Check:

    Broken axes = skip gaps [OK]
Hint: Broken axes hide gaps to highlight important data [OK]
Common Mistakes:
  • Thinking broken axes add 3D or animation
  • Confusing broken axes with color changes
  • Assuming broken axes zoom in automatically
2. Which of the following is the correct way to import the brokenaxes package to use brokenaxes(...) directly for creating broken axes plots?
easy
A. from brokenaxes import BrokenAxes
B. import brokenaxes as ba
C. from brokenaxes import brokenaxes
D. import matplotlib.brokenaxes as ba

Solution

  1. Step 1: Recall the correct import syntax

    The brokenaxes package provides the brokenaxes function to create broken axes plots.
  2. Step 2: Identify the correct import statement

    The correct way is from brokenaxes import brokenaxes to access the function directly.
  3. Final Answer:

    from brokenaxes import brokenaxes -> Option C
  4. Quick Check:

    Import brokenaxes function = from brokenaxes import brokenaxes [OK]
Hint: Import brokenaxes function directly from brokenaxes [OK]
Common Mistakes:
  • Using capital 'BrokenAxes' instead of 'brokenaxes'
  • Trying to import from matplotlib instead of brokenaxes
  • Using wrong import syntax causing ImportError
3. What will the following code output?
from brokenaxes import brokenaxes
import matplotlib.pyplot as plt

bax = brokenaxes(ylims=((0, 2), (8, 10)))
bax.plot([0, 1, 2, 3], [1, 1.5, 9, 9.5])
plt.show()
medium
A. A plot with y-axis broken between 2 and 8 showing points near 1 and 9
B. A plot with continuous y-axis from 0 to 10
C. An error because ylims must be a single tuple
D. A plot with x-axis broken between 2 and 8

Solution

  1. Step 1: Analyze the ylims parameter

    The ylims=((0, 2), (8, 10)) means the y-axis is broken to show two ranges: 0 to 2 and 8 to 10, skipping 2 to 8.
  2. Step 2: Understand the plotted points

    The y-values are 1, 1.5, 9, and 9.5, which fit into the two visible y-axis ranges.
  3. Final Answer:

    A plot with y-axis broken between 2 and 8 showing points near 1 and 9 -> Option A
  4. Quick Check:

    ylims tuple of ranges = broken y-axis [OK]
Hint: ylims with tuples creates breaks on y-axis [OK]
Common Mistakes:
  • Assuming y-axis is continuous without breaks
  • Confusing x-axis and y-axis breaks
  • Expecting an error from tuple ylims
4. Identify the error in this code snippet that tries to create broken axes:
from brokenaxes import brokenaxes
import matplotlib.pyplot as plt

bax = brokenaxes(xlims=(0, 2), (5, 7))
bax.plot([1, 6], [10, 20])
plt.show()
medium
A. plt.show() must be called before plot
B. plot function requires x and y to be the same length
C. BrokenAxes cannot be used with xlims parameter
D. xlims should be a tuple of tuples, not separate tuples

Solution

  1. Step 1: Check the xlims argument syntax

    The code uses xlims=(0, 2), (5, 7) which is invalid syntax; it should be a single tuple containing tuples like xlims=((0, 2), (5, 7)).
  2. Step 2: Confirm other parts are correct

    The plot call and plt.show() are correct; the error is only in xlims syntax.
  3. Final Answer:

    xlims should be a tuple of tuples, not separate tuples -> Option D
  4. Quick Check:

    xlims syntax = tuple of tuples [OK]
Hint: Use double parentheses for xlims tuple of ranges [OK]
Common Mistakes:
  • Passing multiple tuples without enclosing in one tuple
  • Mixing up xlims and ylims syntax
  • Calling plt.show() too early
5. You have data with y-values clustered around 0-3 and 50-55, with a large gap in between. How would you create a broken y-axis to show both clusters clearly using brokenaxes?
hard
A. Plot two separate figures for each cluster
B. Use ylims=((0, 3), (50, 55)) when creating brokenaxes
C. Use xlims=((0, 3), (50, 55)) to break x-axis instead
D. Use ylims=(0, 55) to show full range without breaks

Solution

  1. Step 1: Identify the axis to break

    The gap is in y-values, so the y-axis needs to be broken to skip the large gap between 3 and 50.
  2. Step 2: Set ylims with two ranges

    Using ylims=((0, 3), (50, 55)) creates a broken y-axis showing both clusters clearly.
  3. Final Answer:

    Use ylims=((0, 3), (50, 55)) when creating brokenaxes -> Option B
  4. Quick Check:

    Broken y-axis = ylims tuple of ranges [OK]
Hint: Set ylims with two ranges to break y-axis gaps [OK]
Common Mistakes:
  • Breaking x-axis instead of y-axis
  • Using single continuous ylims hiding gap
  • Plotting separate figures unnecessarily
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard