Bird
Raised Fist0
Matplotlibdata~20 mins

Colorbar configuration in Matplotlib - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Colorbar Configuration Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this colorbar orientation code?

Consider this matplotlib code that creates a colorbar with a specific orientation. What will be the orientation of the colorbar?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
img = ax.imshow(np.random.rand(5,5))
cbar = fig.colorbar(img, orientation='horizontal')
print(cbar.orientation)
Anone
Bdiagonal
Cvertical
Dhorizontal
Attempts:
2 left
💡 Hint

Check the orientation parameter passed to fig.colorbar().

❓ data_output
intermediate
2:00remaining
How many ticks are shown on this colorbar?

This code creates a colorbar with 5 ticks. How many tick labels will be shown on the colorbar?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
img = ax.imshow(np.random.rand(10,10))
cbar = fig.colorbar(img, ticks=[0, 0.25, 0.5, 0.75, 1])
print(len(cbar.ax.get_yticklabels()))
A4
B6
C5
D0
Attempts:
2 left
💡 Hint

The number of tick labels matches the number of ticks specified in the ticks list.

🔧 Debug
advanced
2:00remaining
Why does this colorbar code raise an error?

Examine the code below. It raises an error when run. What is the cause?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
img = ax.imshow(np.random.rand(5,5))
cbar = fig.colorbar(img, orientation='sideways')
AValueError because 'sideways' is not a valid orientation
BSyntaxError due to invalid orientation value
CTypeError because colorbar expects a string but got None
DNo error, code runs fine
Attempts:
2 left
💡 Hint

Check the allowed values for the orientation parameter.

❓ visualization
advanced
2:00remaining
Which option produces a colorbar with ticks inside the plot area?

Given the following code snippet, which option correctly sets the colorbar ticks to appear inside the plot area?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
img = ax.imshow(np.random.rand(5,5))
cbar = fig.colorbar(img)
# Set ticks inside here
Acbar.ax.tick_params(direction='in')
Bcbar.set_ticks_position('none')
Ccbar.set_ticks_position('outside')
Dcbar.ax.tick_params(direction='out')
Attempts:
2 left
💡 Hint

Look for the parameter controlling tick direction.

🚀 Application
expert
3:00remaining
How to create a colorbar with a custom label and fixed size?

You want to add a vertical colorbar to your plot with the label 'Intensity' and fix its width to 0.1 of the figure width. Which code snippet achieves this?

Matplotlib
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
img = ax.imshow(np.random.rand(10,10))
Acbar = fig.colorbar(img, label='Intensity', fraction=0.1)
B
cbar = fig.colorbar(img, fraction=0.1)
cbar.set_label('Intensity')
C
cbar = fig.colorbar(img)
cbar.set_label('Intensity')
cbar.ax.set_aspect(0.1)
D
cbar = fig.colorbar(img, fraction=0.1, orientation='horizontal')
cbar.set_label('Intensity')
Attempts:
2 left
💡 Hint

Check the fraction parameter for size and use set_label for labeling.

Practice

(1/5)
1. What is the main purpose of adding a colorbar to a matplotlib plot?
easy
A. To add a title to the plot
B. To change the plot background color
C. To show the meaning of colors used in the plot
D. To save the plot as an image file

Solution

  1. Step 1: Understand the role of color in plots

    Colors often represent data values or categories in a plot.
  2. Step 2: Purpose of colorbar

    A colorbar explains what each color means, helping viewers interpret the plot correctly.
  3. Final Answer:

    To show the meaning of colors used in the plot -> Option C
  4. Quick Check:

    Colorbar explains colors = C [OK]
Hint: Colorbar explains colors in the plot [OK]
Common Mistakes:
  • Thinking colorbar changes background color
  • Confusing colorbar with plot title
  • Assuming colorbar saves the plot
2. Which of the following is the correct way to add a colorbar to a matplotlib plot stored in variable im?
easy
A. plt.colorbar(im)
B. plt.colorbar()
C. im.colorbar()
D. plt.add_colorbar(im)

Solution

  1. Step 1: Identify the function to add colorbar

    Matplotlib uses plt.colorbar() and requires the image or plot object as argument.
  2. Step 2: Check the correct syntax

    Passing im to plt.colorbar(im) correctly links the colorbar to the plot.
  3. Final Answer:

    plt.colorbar(im) -> Option A
  4. Quick Check:

    plt.colorbar(im) adds colorbar [OK]
Hint: Use plt.colorbar(plot_object) to add colorbar [OK]
Common Mistakes:
  • Calling colorbar without argument
  • Trying to call colorbar on plot object
  • Using non-existent plt.add_colorbar function
3. What will be the effect of this code snippet?
import matplotlib.pyplot as plt
import numpy as np

img = np.random.rand(5,5)
im = plt.imshow(img, cmap='viridis')
cb = plt.colorbar(im, orientation='horizontal')
plt.show()
medium
A. A vertical colorbar appears on the right side
B. A horizontal colorbar appears below the image
C. No colorbar appears because orientation is invalid
D. The plot shows an error and does not display

Solution

  1. Step 1: Understand the orientation parameter

    Setting orientation='horizontal' places the colorbar horizontally below or above the plot.
  2. Step 2: Check the code behavior

    The code creates a heatmap and adds a horizontal colorbar below it, so the colorbar is horizontal.
  3. Final Answer:

    A horizontal colorbar appears below the image -> Option B
  4. Quick Check:

    orientation='horizontal' means horizontal colorbar [OK]
Hint: orientation='horizontal' makes colorbar horizontal [OK]
Common Mistakes:
  • Assuming default vertical colorbar ignores orientation
  • Thinking orientation='horizontal' causes error
  • Confusing colorbar position with plot title
4. Identify the error in this code that tries to add a colorbar:
import matplotlib.pyplot as plt
import numpy as np

img = np.random.rand(10,10)
im = plt.imshow(img)
plt.clf()
plt.colorbar()
plt.show()
medium
A. plt.show() must come before plt.colorbar()
B. plt.imshow() cannot be used with colorbar
C. np.random.rand() generates wrong data type
D. plt.colorbar() missing the plot object argument

Solution

  1. Step 1: Check plt.colorbar() usage

    When adding a colorbar, you must pass the image or plot object to plt.colorbar().
  2. Step 2: Identify missing argument

    The code calls plt.colorbar() without im, so matplotlib doesn't know which plot to link the colorbar to.
  3. Final Answer:

    plt.colorbar() missing the plot object argument -> Option D
  4. Quick Check:

    colorbar needs plot object argument [OK]
Hint: Always pass plot object to plt.colorbar() [OK]
Common Mistakes:
  • Forgetting to pass the image to colorbar
  • Thinking plt.imshow() can't have colorbar
  • Calling plt.show() before colorbar
5. You want to create a plot with a colorbar that only shows ticks at values 0.2, 0.5, and 0.8. Which code snippet correctly sets these ticks on the colorbar?
import matplotlib.pyplot as plt
import numpy as np

img = np.random.rand(10,10)
im = plt.imshow(img, cmap='plasma')
cb = plt.colorbar(im)
# Which line below sets the ticks correctly?
hard
A. cb.set_ticks([0.2, 0.5, 0.8])
B. plt.colorbar.set_ticks([0.2, 0.5, 0.8])
C. im.set_ticks([0.2, 0.5, 0.8])
D. cb.ticks = [0.2, 0.5, 0.8]

Solution

  1. Step 1: Identify the colorbar object

    The variable cb holds the colorbar returned by plt.colorbar(im).
  2. Step 2: Use the correct method to set ticks

    The method to set ticks on a colorbar is set_ticks() called on the colorbar object.
  3. Final Answer:

    cb.set_ticks([0.2, 0.5, 0.8]) -> Option A
  4. Quick Check:

    Use colorbar.set_ticks() to set ticks [OK]
Hint: Use colorbar.set_ticks(list_of_values) to set ticks [OK]
Common Mistakes:
  • Trying to set ticks on plt.colorbar directly
  • Setting ticks on the image object
  • Assigning ticks list to attribute instead of method
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