Bar plots help us see and compare values easily using bars. They make numbers simple to understand by showing them as tall or short bars.
Comparing sales numbers of different products in a store.
Showing the number of students in different classes.
Visualizing survey results with categories like favorite colors.
Comparing monthly expenses in a budget.
Syntax
Pandas
DataFrame.plot.bar(x=None, y=None, **kwargs)
x is the column for categories (labels on x-axis).
y is the column for values (height of bars).
Examples
Basic bar plot using 'Category' for labels and 'Value' for bar heights.
Pandas
df.plot.bar(x='Category', y='Value')
Bar plot using DataFrame index as x-axis and all numeric columns as bars.
Pandas
df.plot.bar()
Horizontal bar plot instead of vertical bars.
Pandas
df.plot.barh(x='Category', y='Value')
Sample Program
This code creates a bar plot showing sales numbers for three fruits. Each bar height shows how many were sold.
Pandas
import pandas as pd
import matplotlib.pyplot as plt
# Create sample data
sales_data = {'Product': ['Apples', 'Bananas', 'Cherries'], 'Sales': [30, 45, 25]}
df = pd.DataFrame(sales_data)
# Create bar plot
ax = df.plot.bar(x='Product', y='Sales', color='skyblue', legend=False)
ax.set_ylabel('Number Sold')
ax.set_title('Sales of Fruits')
plt.tight_layout()
plt.show()
OutputSuccess
Important Notes
You need matplotlib installed to see the plot.
Use legend=False if you want to hide the legend for a single bar series.
Customize colors and labels to make the plot clearer.
Summary
Bar plots show data as bars for easy comparison.
Use plot.bar() with x and y to pick labels and values.
Customize your plot with colors, titles, and labels for clarity.
Practice
(1/5)
1. What does a bar plot primarily help you do with data?
easy
A. Sort data in ascending order
B. Compare values across different categories visually
C. Calculate the average of numerical data
D. Show the relationship between two continuous variables
Solution
Step 1: Understand the purpose of a bar plot
A bar plot uses bars to represent data values for different categories, making it easy to compare them visually.
Step 2: Compare with other options
Calculating averages, sorting data, or showing relationships between continuous variables are not the main uses of bar plots.
Final Answer:
Compare values across different categories visually -> Option B
Quick Check:
Bar plot = Compare categories [OK]
Hint: Bar plots show category comparisons with bars [OK]
Common Mistakes:
Confusing bar plots with scatter plots
Thinking bar plots calculate statistics
Assuming bar plots sort data automatically
2. Which of the following is the correct way to create a bar plot in pandas for columns 'Category' and 'Value' in DataFrame df?
easy
A. df.barplot('Category', 'Value')
B. df.plot.bar(y='Category', x='Value')
C. df.plot.bar('Value', 'Category')
D. df.plot.bar(x='Category', y='Value')
Solution
Step 1: Recall pandas bar plot syntax
The correct syntax is df.plot.bar(x='Category', y='Value') where x is the label and y is the height of bars.
Step 2: Check other options for errors
df.barplot('Category', 'Value') uses a non-existent method barplot, C swaps x and y incorrectly, D swaps x and y keyword arguments wrongly.
Final Answer:
df.plot.bar(x='Category', y='Value') -> Option D
Quick Check:
Use plot.bar with x and y named [OK]
Hint: Use df.plot.bar(x=..., y=...) to plot bars [OK]
Common Mistakes:
Using wrong method like barplot instead of plot.bar
Swapping x and y arguments
Not naming x and y parameters
3. Given the code:
import pandas as pd
import matplotlib.pyplot as plt
data = {'Fruit': ['Apple', 'Banana', 'Cherry'], 'Count': [10, 15, 7]}
df = pd.DataFrame(data)
df.plot.bar(x='Fruit', y='Count')
plt.show()
What will the bar plot display?
medium
A. A line plot connecting fruit counts
B. Bars showing counts of Apple=7, Banana=10, Cherry=15
C. Bars showing counts of Apple=10, Banana=15, Cherry=7
D. An error because plt.show() is missing
Solution
Step 1: Understand the DataFrame content
The DataFrame has fruits as categories and their counts: Apple=10, Banana=15, Cherry=7.
Step 2: Analyze the bar plot code
Using df.plot.bar(x='Fruit', y='Count') plots bars with fruit names on x-axis and counts as bar heights.
Final Answer:
Bars showing counts of Apple=10, Banana=15, Cherry=7 -> Option C
Quick Check:
Bar heights = Count values [OK]
Hint: Bar heights match y column values [OK]
Common Mistakes:
Mixing up fruit names and counts
Thinking plt.show() is optional (it is needed to display)
Confusing bar plot with line plot
4. What is wrong with this code snippet for creating a bar plot?
df.plot.bar('Category', 'Value')
medium
A. It will plot correctly with Category on x-axis and Value on y-axis
B. It will raise an error because x and y must be named arguments
C. It will swap x and y axes automatically
D. It will create a line plot instead of a bar plot
Solution
Step 1: Check pandas plot.bar argument handling
The plot.bar() method accepts positional arguments: first for x, second for y.
Step 2: Verify the code
df.plot.bar('Category', 'Value') correctly assigns x='Category' and y='Value', producing the intended bar plot.
Final Answer:
It will plot correctly with Category on x-axis and Value on y-axis -> Option A
Quick Check:
Positional x,y accepted in plot.bar [OK]
Hint: plot.bar accepts positional x,y args [OK]
Common Mistakes:
Believing x,y must always be named arguments
Expecting automatic axis swapping
Confusing bar plot with line plot
5. You have a DataFrame df with columns 'Product', 'Sales_Q1', 'Sales_Q2'. You want to create a grouped bar plot to compare sales in Q1 and Q2 for each product. Which code correctly creates this grouped bar plot?
hard
A. df.plot.bar(x='Product', y=['Sales_Q1', 'Sales_Q2'])
B. df.plot.bar(x='Product', y='Sales_Q1')
df.plot.bar(x='Product', y='Sales_Q2')
C. df.plot.bar(x=['Sales_Q1', 'Sales_Q2'], y='Product')
D. df.plot.bar(y=['Sales_Q1', 'Sales_Q2'])
Solution
Step 1: Understand grouped bar plot requirements
To compare multiple columns side-by-side per category, pass y as a list of columns and x as the category column.
Step 2: Analyze each option
df.plot.bar(x='Product', y=['Sales_Q1', 'Sales_Q2']) correctly uses x='Product' and y=['Sales_Q1', 'Sales_Q2'] to create grouped bars. df.plot.bar(x='Product', y='Sales_Q1')
df.plot.bar(x='Product', y='Sales_Q2') plots separately, not grouped. df.plot.bar(x=['Sales_Q1', 'Sales_Q2'], y='Product') swaps x and y incorrectly. df.plot.bar(y=['Sales_Q1', 'Sales_Q2']) misses x, so no category labels.
Final Answer:
df.plot.bar(x='Product', y=['Sales_Q1', 'Sales_Q2']) -> Option A
Quick Check:
Grouped bars need y as list and x as category [OK]
Hint: Use y=[col1, col2] and x=category for grouped bars [OK]
Common Mistakes:
Plotting columns separately instead of grouped
Swapping x and y arguments
Not specifying x for categories
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.