Bird
Raised Fist0
Matplotlibdata~20 mins

Why histograms show distributions in Matplotlib - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Histogram Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What does this histogram represent?
Look at the code that creates a histogram. What does the histogram show about the data?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

data = np.random.normal(loc=0, scale=1, size=1000)
plt.hist(data, bins=20)
plt.show()
AIt shows the sum of all data points in the dataset.
BIt shows the exact values of each data point as dots on the plot.
CIt shows the frequency of data points in each range (bin), representing the data distribution.
DIt shows the average value of the data points only.
Attempts:
2 left
💡 Hint
Think about what a histogram does with data points and bins.
❓ data_output
intermediate
2:00remaining
Number of bins effect on histogram
What happens to the histogram output if you increase the number of bins from 5 to 50 for the same data?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

data = np.random.uniform(0, 10, 1000)
plt.hist(data, bins=5)
plt.show()
plt.hist(data, bins=50)
plt.show()
AThe histogram with 50 bins shows more detailed distribution with smaller ranges per bin.
BThe histogram with 50 bins shows fewer bars than the one with 5 bins.
CBoth histograms look exactly the same.
DThe histogram with 5 bins shows more detail than the one with 50 bins.
Attempts:
2 left
💡 Hint
More bins means dividing data into smaller groups.
❓ visualization
advanced
2:30remaining
Identify the distribution type from histogram
Given the histogram plot code below, what type of distribution does the data most likely have?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

data = np.random.exponential(scale=1.0, size=1000)
plt.hist(data, bins=30)
plt.show()
AThe data follows an exponential distribution with many small values and a long tail.
BThe data follows a uniform distribution with equal frequency across bins.
CThe data follows a normal distribution with a symmetric bell shape.
DThe data follows a bimodal distribution with two peaks.
Attempts:
2 left
💡 Hint
Look for a shape with a peak near zero and a tail stretching right.
🧠 Conceptual
advanced
2:00remaining
Why histograms are useful for understanding data
Why do data scientists use histograms to understand data distributions?
ABecause histograms remove all noise from data to show only clean values.
BBecause histograms list every single data point in the dataset.
CBecause histograms calculate the exact mean and median values automatically.
DBecause histograms visually summarize how data points are spread across ranges, revealing patterns and outliers.
Attempts:
2 left
💡 Hint
Think about what visual summaries help you see quickly.
🔧 Debug
expert
2:30remaining
Why does this histogram code produce an error?
Look at the code below. Why does it raise an error when trying to plot the histogram?
Matplotlib
import matplotlib.pyplot as plt
import numpy as np

data = np.random.normal(0, 1, 100)
plt.hist(data, bins='ten')
plt.show()
ABecause plt.show() must be called before plt.hist().
BBecause 'bins' parameter must be an integer or sequence, not a string like 'ten'.
CBecause plt.hist cannot plot data from numpy arrays.
DBecause np.random.normal requires three arguments, but only two are given.
Attempts:
2 left
💡 Hint
Check the type of the 'bins' argument.

Practice

(1/5)
1. What does a histogram primarily show about a dataset?
easy
A. The average value of the dataset
B. The exact values of each data point
C. The order in which data was collected
D. How data values are spread or grouped

Solution

  1. Step 1: Understand histogram purpose

    A histogram groups data into ranges (bins) to show how values spread.
  2. Step 2: Compare options to definition

    Only How data values are spread or grouped describes this grouping and spread, others describe different concepts.
  3. Final Answer:

    How data values are spread or grouped -> Option D
  4. Quick Check:

    Histogram = Data spread [OK]
Hint: Histograms show data grouping, not exact values [OK]
Common Mistakes:
  • Thinking histograms show exact data points
  • Confusing histogram with mean or order
  • Assuming histograms show data collection sequence
2. Which of the following is the correct way to create a histogram using matplotlib for a list named data?
easy
A. plt.plot(data)
B. plt.hist(data)
C. plt.scatter(data)
D. plt.bar(data)

Solution

  1. Step 1: Recall matplotlib histogram function

    The function to create histograms is plt.hist().
  2. Step 2: Match options with correct function

    Only plt.hist(data) uses plt.hist(data), others create different plots.
  3. Final Answer:

    plt.hist(data) -> Option B
  4. Quick Check:

    Histogram function = plt.hist() [OK]
Hint: Use plt.hist() to plot histograms in matplotlib [OK]
Common Mistakes:
  • Using plt.plot() instead of plt.hist()
  • Confusing scatter or bar plots with histograms
  • Forgetting to import matplotlib.pyplot as plt
3. Given the code:
import matplotlib.pyplot as plt
import numpy as np
data = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
plt.hist(data, bins=4)
plt.show()

What does the histogram show about the data distribution?
medium
A. There are more data points at 1 than at 4
B. Data points are evenly spread across all values
C. Most data points are around 4
D. Data points cluster mostly at 2 and 3

Solution

  1. Step 1: Count data frequency per value

    Data has 1 one, 2 twos, 3 threes, and 4 fours; highest count is 4.
  2. Step 2: Understand histogram bins and heights

    With 4 bins, each value likely forms a bin; tallest bar corresponds to value 4.
  3. Final Answer:

    Most data points are around 4 -> Option C
  4. Quick Check:

    Highest frequency = 4 [OK]
Hint: Look for tallest bar to find where data clusters [OK]
Common Mistakes:
  • Assuming equal spread without checking counts
  • Confusing bin count with data values
  • Ignoring frequency differences
4. What is wrong with this code snippet for plotting a histogram?
import matplotlib.pyplot as plt
data = [1, 2, 2, 3, 3, 3]
plt.hist(data, bins='five')
plt.show()
medium
A. The bins parameter should be an integer, not a string
B. plt.hist() cannot plot lists, only arrays
C. plt.show() is missing
D. Data list contains duplicate values which histograms can't handle

Solution

  1. Step 1: Check bins parameter type

    Bins must be an integer or sequence, not a string like 'five'.
  2. Step 2: Verify other parts of code

    Data as list is valid, plt.show() is present, duplicates are allowed.
  3. Final Answer:

    The bins parameter should be an integer, not a string -> Option A
  4. Quick Check:

    Bins type error = The bins parameter should be an integer, not a string [OK]
Hint: Bins must be number, not text [OK]
Common Mistakes:
  • Passing string instead of integer for bins
  • Thinking duplicates cause errors
  • Missing plt.show() call
5. You have a dataset with ages of 1000 people ranging from 0 to 100. You want to see detailed age groups but also avoid too much noise. Which bin setting for plt.hist() best balances detail and clarity?
hard
A. bins=20 (moderate groups)
B. bins=1000 (one bin per person)
C. bins='auto' (let matplotlib decide)
D. bins=5 (very few large groups)

Solution

  1. Step 1: Understand bin size impact

    Few bins (5) lose detail; too many bins (1000) cause noise.
  2. Step 2: Choose balanced bin count

    20 bins give moderate detail without clutter; 'auto' can vary unpredictably.
  3. Final Answer:

    bins=20 (moderate groups) -> Option A
  4. Quick Check:

    Balanced bins = 20 [OK]
Hint: Choose moderate bins for clear, detailed histograms [OK]
Common Mistakes:
  • Using too few bins losing detail
  • Using too many bins causing noisy plots
  • Relying on 'auto' without checking result
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