Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Bar charts in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Bar Chart Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple bar chart code
What will be the output of this Python code using matplotlib?
Data Analysis Python
import matplotlib.pyplot as plt

categories = ['A', 'B', 'C']
values = [5, 3, 9]
plt.bar(categories, values)
plt.show()
AA bar chart with three bars labeled A, B, C with heights 5, 3, and 9 respectively
BA line chart connecting points (A,5), (B,3), (C,9)
CA scatter plot with points at (A,5), (B,3), (C,9)
DA pie chart showing proportions of 5, 3, and 9
Attempts:
2 left
💡 Hint
Look at the function plt.bar and what it does with categories and values.
❓ data_output
intermediate
2:00remaining
Data output from grouped bar chart data
Given this data for two groups, what is the total height of bars for category 'X'?
Data Analysis Python
import pandas as pd

data = {'Category': ['X', 'Y', 'Z'], 'Group1': [4, 7, 1], 'Group2': [3, 2, 5]}
df = pd.DataFrame(data)
total_x = df.loc[df['Category'] == 'X', ['Group1', 'Group2']].sum(axis=1).values[0]
print(total_x)
A3
B4
C12
D7
Attempts:
2 left
💡 Hint
Sum the values for Group1 and Group2 where Category is 'X'.
❓ visualization
advanced
2:00remaining
Identify the error in this stacked bar chart code
What error will this code produce when trying to plot a stacked bar chart?
Data Analysis Python
import matplotlib.pyplot as plt

labels = ['G1', 'G2', 'G3']
men_means = [20, 35, 30]
women_means = [25, 32, 34]

plt.bar(labels, men_means)
plt.bar(labels, women_means, bottom=men_means)
plt.show()
ANo error; the code produces a stacked bar chart correctly
BTypeError because bottom parameter expects a scalar, not a list
CValueError due to mismatched lengths of labels and data
DRuntimeWarning about overlapping bars
Attempts:
2 left
💡 Hint
Check how plt.bar handles the bottom parameter with lists.
🔧 Debug
advanced
2:00remaining
Why does this horizontal bar chart code fail?
This code is intended to create a horizontal bar chart but raises an error. What is the cause?
Data Analysis Python
import matplotlib.pyplot as plt

categories = ['A', 'B', 'C']
values = [10, 20, 15]
plt.barh(categories, values, color='blue')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()
ATypeError because plt.barh does not accept color argument
BNo error; the code runs and shows a horizontal bar chart
CValueError because xlabel and ylabel are swapped
DAttributeError because plt.barh is not a valid function
Attempts:
2 left
💡 Hint
Check if plt.barh exists and accepts color argument.
🚀 Application
expert
2:00remaining
Calculate the number of bars in a grouped bar chart
You have a DataFrame with 4 categories and 3 groups. You want to plot a grouped bar chart showing all groups side by side for each category. How many bars will appear in total?
Data Analysis Python
import pandas as pd

data = {'Category': ['C1', 'C2', 'C3', 'C4'], 'Group1': [5, 7, 6, 8], 'Group2': [3, 2, 4, 1], 'Group3': [9, 5, 7, 6]}
df = pd.DataFrame(data)
A7
B3
C12
D4
Attempts:
2 left
💡 Hint
Multiply the number of categories by the number of groups.

Practice

(1/5)
1. What does a bar chart mainly help you do with data?
easy
A. See differences between groups using bars
B. Calculate exact averages of numbers
C. Show data as a continuous line
D. Display data in a table format

Solution

  1. Step 1: Understand the purpose of bar charts

    Bar charts use bars to visually compare values across categories.
  2. Step 2: Compare options to bar chart use

    Only See differences between groups using bars describes using bars to see differences between groups.
  3. Final Answer:

    See differences between groups using bars -> Option A
  4. Quick Check:

    Bar charts = Visual group comparison [OK]
Hint: Bar charts show group sizes as bars [OK]
Common Mistakes:
  • Confusing bar charts with line charts
  • Thinking bar charts show exact calculations
  • Mixing bar charts with tables
2. Which of these is the correct way to create a vertical bar chart using matplotlib in Python?
easy
A. plt.plot(x, height)
B. plt.barh(x, height)
C. plt.bar(x, height)
D. plt.scatter(x, height)

Solution

  1. Step 1: Recall matplotlib bar chart functions

    plt.bar() creates vertical bars; plt.barh() creates horizontal bars.
  2. Step 2: Match function to vertical bars

    Only plt.bar(x, height) creates vertical bar charts.
  3. Final Answer:

    plt.bar(x, height) -> Option C
  4. Quick Check:

    Vertical bars use plt.bar() [OK]
Hint: Use plt.bar() for vertical bars [OK]
Common Mistakes:
  • Using plt.barh() for vertical bars
  • Confusing plt.plot() with bar charts
  • Using plt.scatter() for bar charts
3. What will the following code display?
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C']
values = [5, 3, 7]
plt.bar(categories, values)
plt.show()
medium
A. A vertical bar chart with bars for A=5, B=3, C=7
B. A horizontal bar chart with bars for A=5, B=3, C=7
C. A line chart connecting points A, B, C
D. An error because plt.bar() needs numeric x values

Solution

  1. Step 1: Understand plt.bar() with categorical x

    plt.bar() accepts category labels as x and numeric heights as values.
  2. Step 2: Analyze the code output

    It creates vertical bars labeled A, B, C with heights 5, 3, 7 respectively.
  3. Final Answer:

    A vertical bar chart with bars for A=5, B=3, C=7 -> Option A
  4. Quick Check:

    plt.bar(categories, values) = vertical bars [OK]
Hint: plt.bar() accepts category labels for x-axis [OK]
Common Mistakes:
  • Thinking plt.bar() only accepts numbers for x
  • Confusing vertical and horizontal bars
  • Expecting a line chart from plt.bar()
4. The code below is meant to create a horizontal bar chart but it shows a vertical one instead. What is the error?
import matplotlib.pyplot as plt
labels = ['X', 'Y', 'Z']
values = [10, 20, 15]
plt.bar(labels, values)
plt.show()
medium
A. The labels list should be numeric, not strings
B. plt.show() must be called before plt.bar()
C. Values must be strings, not numbers
D. plt.bar() creates vertical bars; use plt.barh() for horizontal bars

Solution

  1. Step 1: Identify the function used for bar charts

    plt.bar() creates vertical bars; plt.barh() creates horizontal bars.
  2. Step 2: Find why chart is vertical

    Using plt.bar() causes vertical bars, so to get horizontal bars, plt.barh() is needed.
  3. Final Answer:

    plt.bar() creates vertical bars; use plt.barh() for horizontal bars -> Option D
  4. Quick Check:

    Horizontal bars need plt.barh() [OK]
Hint: Use plt.barh() for horizontal bars [OK]
Common Mistakes:
  • Thinking labels must be numbers
  • Swapping order of plt.show() and plt.bar()
  • Using string values instead of numbers
5. You have sales data for 3 products: {'Product A': 30, 'Product B': 45, 'Product C': 25}. You want to create a bar chart showing these sales with product names on the x-axis and sales on the y-axis. Which code snippet correctly creates this chart with labels and a title?
hard
A. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.barh(sales.values(), sales.keys()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show()
B. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.bar(sales.keys(), sales.values()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show()
C. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.plot(sales.keys(), sales.values()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show()
D. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.bar(sales.values(), sales.keys()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show()

Solution

  1. Step 1: Understand data and desired chart

    We want vertical bars with product names on x-axis and sales on y-axis.
  2. Step 2: Check code snippets for correct bar chart

    import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.bar(sales.keys(), sales.values()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show() uses plt.bar() with keys as x and values as heights, plus labels and title correctly set.
  3. Step 3: Identify errors in other options

    import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.barh(sales.values(), sales.keys()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show() uses plt.barh() but swaps x and y labels incorrectly. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.plot(sales.keys(), sales.values()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show() uses plt.plot() which is a line chart. import matplotlib.pyplot as plt sales = {'Product A': 30, 'Product B': 45, 'Product C': 25} plt.bar(sales.values(), sales.keys()) plt.xlabel('Products') plt.ylabel('Sales') plt.title('Sales by Product') plt.show() swaps keys and values in plt.bar(), causing wrong axes.
  4. Final Answer:

    Code that correctly creates the labeled vertical bar chart -> Option B
  5. Quick Check:

    Keys on x, values on y with plt.bar() [OK]
Hint: Use plt.bar(keys, values) with labels and title [OK]
Common Mistakes:
  • Swapping keys and values in plt.bar()
  • Using plt.plot() instead of plt.bar()
  • Mixing up plt.bar() and plt.barh() axes
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