Bars are positioned between integers with smaller width for spacing.
Matplotlib
plt.bar([0.5, 1.5, 2.5], [7, 8, 5], width=0.4)
Sample Program
This code draws three bars at positions 1, 2, and 3 with heights 5, 7, and 3. The bars are 0.6 units wide and centered on their x positions.
Matplotlib
import matplotlib.pyplot as plt
# Positions of bars
x = [1, 2, 3]
# Heights of bars
heights = [5, 7, 3]
# Draw bars with width 0.6 and center alignment
plt.bar(x, heights, width=0.6, align='center')
# Add labels and title
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Bar Width and Positioning Example')
# Show the plot
plt.show()
OutputSuccess
Important Notes
If bars overlap, try reducing the width or adjusting positions.
Use align='edge' to align bars by their left edge instead of center.
For grouped bars, shift x positions to avoid overlap.
Summary
Bar width controls how thick each bar looks.
Bar positioning sets where bars appear on the x-axis.
Adjust width and position to make charts clear and readable.
Practice
(1/5)
1. What does the width parameter control in a matplotlib bar chart?
easy
A. The thickness of each bar
B. The color of each bar
C. The height of each bar
D. The label of each bar
Solution
Step 1: Understand the width parameter
The width parameter in matplotlib's bar chart sets how wide or thick each bar appears on the x-axis.
Step 2: Differentiate from other properties
Color, height, and label are controlled by other parameters, not width.
Final Answer:
The thickness of each bar -> Option A
Quick Check:
Bar width = thickness [OK]
Hint: Width changes bar thickness, not height or color [OK]
Common Mistakes:
Confusing width with height
Thinking width changes bar color
Assuming width changes bar labels
2. Which of the following is the correct way to set the bar width to 0.5 in matplotlib?
easy
A. plt.bar(x, height, thickness=0.5)
B. plt.bar(x, height, width=0.5)
C. plt.bar(x, height, size=0.5)
D. plt.bar(x, height, length=0.5)
Solution
Step 1: Recall matplotlib bar syntax
The plt.bar() function uses the width parameter to set bar thickness.
Step 2: Identify correct parameter name
Only width is valid; size, thickness, and length are invalid for bar width.
Final Answer:
plt.bar(x, height, width=0.5) -> Option B
Quick Check:
Use width to set bar thickness [OK]
Hint: Use 'width' parameter to set bar thickness [OK]
Common Mistakes:
Using 'size' instead of 'width'
Using 'thickness' or 'length' which are invalid
Omitting the width parameter
3. What will be the x positions of bars when running this code?
import matplotlib.pyplot as plt
x = [1, 2, 3]
heights = [4, 5, 6]
plt.bar([pos + 0.2 for pos in x], heights, width=0.4)
plt.show()
medium
A. [1, 2, 3]
B. [0.4, 1.4, 2.4]
C. [1.2, 2.2, 3.2]
D. [0.8, 1.8, 2.8]
Solution
Step 1: Analyze the x positions
The code shifts each x position by adding 0.2, so positions become [1+0.2, 2+0.2, 3+0.2] = [1.2, 2.2, 3.2].
Step 2: Understand bar width effect
The width=0.4 sets bar thickness but does not change the center positions.
Final Answer:
[1.2, 2.2, 3.2] -> Option C
Quick Check:
Positions shifted by 0.2 = [1.2, 2.2, 3.2] [OK]
Hint: Add offset to x list to shift bar positions [OK]
Common Mistakes:
Ignoring the +0.2 shift
Confusing width with position shift
Assuming bars stay at original x
4. Identify the error in this code that tries to plot two sets of bars side by side:
Both bar sets use the same x positions, so bars overlap on the plot.
Step 2: Confirm width and data lengths
Width=0.5 is valid, heights lists have same length, and plt.show() is present.
Final Answer:
Bars overlap because positions are the same -> Option A
Quick Check:
Same x positions cause overlap [OK]
Hint: Shift x positions to avoid bar overlap [OK]
Common Mistakes:
Not shifting x for multiple bar sets
Thinking width causes overlap
Ignoring plt.show() call
5. You want to plot three groups of bars side by side for categories 1, 2, 3. Each group has 3 bars. Which code correctly positions bars to avoid overlap?
import matplotlib.pyplot as plt
x = [1, 2, 3]
heights_a = [3, 5, 7]
heights_b = [4, 6, 8]
heights_c = [2, 4, 6]
width = 0.2
plt.bar([p - width for p in x], heights_a, width=width)
plt.bar(x, heights_b, width=width)
plt.bar([p + width for p in x], heights_c, width=width)
plt.show()
hard
A. Incorrect: width parameter missing
B. Incorrect: bars overlap because width is too large
C. Incorrect: bars all plotted at same x positions
D. Correct: bars shifted left, center, right by width
Solution
Step 1: Analyze bar positions
Bars for group A are shifted left by width, group B at center, group C shifted right by width, so bars are side by side without overlap.
Step 2: Check width and spacing
Width=0.2 is small enough to fit three bars side by side within each category.
Final Answer:
Correct: bars shifted left, center, right by width -> Option D
Quick Check:
Shift bars by ±width to avoid overlap [OK]
Hint: Shift bars by ±width to place side by side [OK]
Common Mistakes:
Not shifting bars, causing overlap
Using width too large for spacing
Forgetting to set width parameter
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.