# Matplotlib: Pie Chart

A pie chart is a type of graph in which a circle is partitioned into sectors (also called wedges or slices) occupying relative area of data.

In this tutorial, we will plot a pie chart using Matplotlib.

The below Matplotlib program plots a basic pie chart with the `pie()` function. The `autopct` parameter is where the wedges are labelled with string or numeric value. The value `%.1f%%` is the Python number format `.1f%` (which includes the percentage symbol `%`), rounding off the number to one decimal place. The format `%.2f%%` will round off the values into two decimal places.

```				```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%.1f%%')
plt.show()
```
```

## Equal Axes

To above chart is oval-shaped. To fix the shape into a perfect circle, we need to keep the figure and axes aspect equal. The `set_aspect()` method sets the desired aspect.

```					```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%.1f%%')
ax.set_aspect('equal')
plt.show()
```
```

## Explode/Expand Slices

The `explode` parameter lets you explode/expand a wedge/slice. Below we expand the first slice by `0.1` fraction of the radius of the pie.

```					```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
explode = (0.1, 0, 0, 0)
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%.1f%%')
ax.set_aspect('equal')
plt.show()
```
```

The `shadow` parameter draws a shadow beneath the pie slices. Also, by default, the first slice starts at the computed angle from the +ve x-axis in the counterclockwise direction. We can alter this starting angle using the `startangle` parameter. Below we assign the value `90` to make it start from the +ve y-axis.

```					```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
explode = (0.1, 0, 0, 0)
fig, ax = plt.subplots()
ax.set_aspect('equal')
plt.show()
```
```

## Custom Colours

By default, the pie slices will pick the colours in the 10-palette default property cycle. So the first slice `Dalmatians` is coloured with (#1f77b4 ), `Beagles` with (#ff7f0e ), `Labradors` with (#2ca02c ) and `German Shepherds` with (#d62728 ).

For applying custom colours, there is the `colors` parameter where we can give preferred colours in array-like sequence.

```					```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
explode = (0.1, 0, 0, 0)
colors = ('#22a6b3', '#e056fd', '#eb4d4b', '#badc58')
fig, ax = plt.subplots()
startangle=90, colors=colors)
ax.set_aspect('equal')
plt.show()
```
```

## Legend

Similar to other plots, we can place a legend on our graph using the `legend()` function. Now we can do away with the `labels` parameter.

```					```
import matplotlib.pyplot as plt

labels = 'Dalmatians', 'Beagles', 'Labradors', 'German Shepherds'
sizes = [6, 10, 15, 9]
explode = (0.1, 0, 0, 0)
fig, ax = plt.subplots()