Pandas DataFrame Plot - Pie Chart
This article provides examples about plotting pie chart using pandas.DataFrame.plot function.
Prerequisites
The data I'm going to use is the same as the other article Pandas DataFrame Plot - Bar Chart. I'm also using Jupyter Notebook to plot them.
The DataFrame has 9 records:
DATE | TYPE | SALES |
---|---|---|
0 | 2020-01-01 | TypeA |
1 | 2020-01-01 | TypeB |
2 | 2020-01-01 | TypeC |
3 | 2020-02-01 | TypeA |
4 | 2020-02-01 | TypeB |
5 | 2020-02-01 | TypeC |
6 | 2020-03-01 | TypeA |
7 | 2020-03-01 | TypeB |
8 | 2020-03-01 | TypeC |
Pie chart
df.groupby(['TYPE']).sum().plot(kind='pie', y='SALES')
The above code outputs the following chart:
Shadow effect
df.groupby(['TYPE']).sum().plot(kind='pie', y='SALES', shadow = True)
Start angle
df.groupby(['TYPE']).sum().plot(kind='pie', y='SALES', shadow = True, startangle=90)
Subplots (trellis)
We can also easily implement subplots/trellis charts.
Let's add derive one more column on the existing DataFrame using the following code:
df['COUNT'] = df['SALES'] /100
df
The dataframe now looks like this:
DATE | TYPE | SALES | COUNT | |
---|---|---|---|---|
0 | 2020-01-01 | TypeA | 1000 | 10.0 |
1 | 2020-01-01 | TypeB | 200 | 2.0 |
2 | 2020-01-01 | TypeC | 300 | 3.0 |
3 | 2020-02-01 | TypeA | 700 | 7.0 |
4 | 2020-02-01 | TypeB | 400 | 4.0 |
5 | 2020-02-01 | TypeC | 500 | 5.0 |
6 | 2020-03-01 | TypeA | 300 | 3.0 |
7 | 2020-03-01 | TypeB | 900 | 9.0 |
8 | 2020-03-01 | TypeC | 100 | 1.0 |
Now we can plot the charts using the following code:
df.groupby(['TYPE']).sum().plot(kind='pie', subplots=True, shadow = True,startangle=90,figsize=(15,10))
In the above code, subplots=True parameter is used to plot charts on both SALES and COUNT metrics. The chart size is also increased using figsize parameter.
The chart now looks like the following screenshot:
Add percentage
df.groupby(['TYPE']).sum().plot(kind='pie', subplots=True, shadow = True,startangle=90,
figsize=(15,10), autopct='%1.1f%%')