# Bar charts with Matplotlib

Learn to build beautiful bar charts in Python using Matplotlib.

## What are Bar charts?

Bar charts are used to compare numerical values of categorical data using bars. The height or length of those bars are proportional to their respective values.

You can plot bar charts in Python using the `bar()` function from the Pyplot class in Matplotlib.

## Syntax of bar function in matplotlib

``````matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
``````

Parameters:

• x - The x coordinates of the bars.
• height - The height(s) of the bars.
• width - The width(s) of the bars, default is 0.8.
• bottom - The y coordinate(s) of the bottom side(s) of the bars, default is 0.
• align - {'center', 'edge'}, default: 'center'
Alignment of the bars to the x coordinates:
'center': Center the base on the x positions.
'edge': Align the left edges of the bars with the x positions.
To align the bars on the right edge pass a negative width and align='edge'

## Plotting a simple bar chart

Let's plot a bar chart showing the total sales of a company over the last 4 quarters for FY 2022-23.

``````import matplotlib.pyplot as plt
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
sales = [42,50,60,24]
plt.bar(quarters,sales)
plt.ylabel("Sales in million \$")
plt.show()
``````

## Plotting horizontal bar charts

Instead of vertical bar charts, you can also plot horizontal bar charts by using the `barh` function.

``````import matplotlib.pyplot as plt
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
sales = [42,50,60,24]
plt.barh(quarters,sales)
plt.xlabel("Sales in million \$")
plt.show()
``````

## Change width of bar charts

You can alter the width of your bars by applying a `bar` parameter for vertical bars and `height` parameter for horizontal bars.

``````import matplotlib.pyplot as plt
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
sales = [42,50,60,24]
plt.barh(quarters, sales, height=0.5)
plt.xlabel("Sales in million \$")
plt.show()
``````

## Different colors for your bar charts

To apply a new color to your bar charts, use the `color` parameter.

You can use any Hexadecimal color values, any of the 140 supported color names, or one of these shortcuts:

`'r'` - Red
`'g'` - Green
`'b'` - Blue
`'c'` - Cyan
`'m'` - Magenta
`'y'` - Yellow
`'k'` - Black
`'w'` - White

## Stacked bar charts

Stacked bar charts are used to show a comparison between categories on the same plot. The bar lengths are proportional to their values.

You can use the `bottom` parameter to draw stacker bar charts in Matplotlib.

``````import matplotlib.pyplot as plt
x = ['Q1', 'Q2', 'Q3', 'Q4']
y1 = [24, 35, 17, 64]
y2 = [20, 30, 10, 90]

# plot bars in stack manner
plt.bar(x, y1, color='r', label='2022')
plt.bar(x, y2, bottom=y1, color='g', label='2021')
plt.legend()
plt.show()
``````