Let’s create a very simple pie chart using the Python library matplotlib. I will jump right into the basic code. I’m using Anaconda Navigator’s Jupyter Notebook on my local Windows machine.
# imort matplotlib's pyplot import matplotlib.pyplot as plt
Let’s build a simple pie chart.
plt.style.use("fivethirtyeight") plt.title("My Nice Pie Chart") plt.tight_layout() slices = [75,25] labels = ['seventy-five','twenty-five'] plt.pie(slices, labels=labels) plt.show()
Here is a screenshot.
Let’s change the data and add borders between the slices. We’ll also change the colors. It’s nice to have colors that are not as intense. I also changed the title to suptitle because I got an error that said: “TypeError: ‘str’ object is not callable”. StackOverflow helped with this.
# Colors: (Just some random hex colors here) Blue = '#008fd5' Red = '#F8927B' Yellow = '#EEF0A3' Green = '#A3F0AB' slices = [35,30, 25, 10] labels = ['35','30','25','10'] colors = ['blue', Red, Green, '#EEF0A3'] plt.suptitle("Four Slices of Pie") plt.pie(slices, labels=labels, colors=colors, wedgeprops={'edgecolor': 'black'}) plt.show()
Here is the screenshot.
Manually Created DataFrame – Pie Chart with Explode
Let’s create a small DataFrame and create a pie chart from the data.
import pandas as pd # manually create a new DataFrame data = {'name': ['Bob', 'Sally', 'Suzie', 'Rohan'], 'num': [12, 67, 33, 41]} df = pd.DataFrame(data) # create a percentage column (new column) total = df['num'].sum() df['percentage'] = ((df['num'] / total) * 100).round(2) df['percentage'].sum()
Below is our current DataFrame.
Let’s create and show a pie chart. I have brought back the colors in the code.
# Create and show a pie chart explode = [0, 0, 0.1, 0] slices = list(df['percentage']) # list() function labels = list(df['name']) Blue = '#008fd5'; Red = '#F8927B'; Green = '#A3F0AB'; Yellow = '#EEF0A3' # random hex colors here colors = ['blue', Red, Green, '#EEF0A3'] # blue is not a hex color here plt.style.use("fivethirtyeight") plt.suptitle("My Friends Pie Chart") # title may throw an error plt.tight_layout() plt.pie(slices, labels=labels, explode=explode, shadow=True, colors=colors, autopct='%1.1f%%', wedgeprops={'edgecolor': 'white'}) plt.show()
Here below is the screenshot.