Plotting Pie Charts in Python (Tutorial)

Plotting Pie Charts In Python

This is a detailed tutorial on plotting pie charts in Python. Learn to create different types of Pie Charts using the matplotlib module with examples.

If you’re an absolute beginner, then I highly recommend you to begin with plotting line graphs and bar charts.

Plotting Pie Charts in Python

A Pie Chart is a great way to visualize statistics. We’ll be using the matplotlib module to plot the pie charts, so if you have not installed it yet on your system, simply use the following command to do so.

pip install matplotlib

It’s very easy to plot a simple pie chart in python using the matplotlib module. The pyplot.pie() method takes some simple arguments and creates a pie chart for you in no time!

Let’s first create a simple pie chart and then move on to create complex pie charts by doing a lot of available customizations.

A Simple Pie Chart

I have taken the data set of market shares of the different desktop Operating Systems as of June 2020. The data is as follows.

Operating System Worldwide Market Share
Windows 77.68%
OS X 17.76%
Unknown 2.06%
Linux 1.69%
Chrome OS 0.8%

Given below is the code to plot a pie-chart for this data.

import matplotlib.pyplot as p

OS = ["Windows", "OS X", "Unknown", "Linux", "Chrome OS"]

#Part Values
parts = [77.68, 17.76, 2.06, 1.69, 0.8]

#Plotting the Pie Chart
p.pie(parts, labels = OS) 

#Show Legend

#Display the Pie Chart


Python Simple Pie Chart Example Using Matplotlib

This is quite a simple pie chart with just labels and nothing else. But a really useful pie-chart will have percentages or part values and some other graphical features to make it better in look and easier to understand.

Here we’ve just passed two arguments. The first one specifies the values for the parts of the pie-chart while the second one gives labels to these parts. We’ll talk about all of the different arguments that you can pass to customize the pie chart in the following section.

Complex Pie Charts

In the above example, we’ve just used two parameters of the pyplot.pie() method but we can also use various other parameters to make a really great and highly customized pie chart.

Have a look at the following code that plots a beautiful pie chart for the exact same data.

import matplotlib.pyplot as p

OS = ["Windows", "OS X", "Unknown", "Linux", "Chrome OS"]

#Part Values
parts = [77.68, 17.76, 2.06, 1.69, 0.8]

#Each Part Color
colors = ["Pink", "Grey", "Blue", "Orange", "Yellow"]

#Wedge Properties
wedgeprops = {
    'linewidth': 0.6

#Text properties
textprops = {
    'fontsize': 10

#Explode Parts
explode = [0, 0.05, 0.1, 0.15, 0.2]

#Plotting the Pie Chart
p.pie(parts, labels = OS, radius = 0.6, colors = colors, shadow = True, autopct = '%1.1f %%', pctdistance = 1.1, labeldistance = 1.2, startangle = 11, counterclock = False, wedgeprops = wedgeprops, textprops = textprops, explode = explode)

#Show Legend

#Display the Pie Chart


Python Matplotlib Complex Pie Chart Customizations Example

Now, let’s understand the different arguments that we have passed to the pyplot.pie() method to make this pie chart.

  • x (parts). The first argument is a Python List containing the numerical values using which you want to create the pie chart.
  • labels. This is also a String-Type Python List containing the labels for each of the numerical shares in the same order as they are in the parts list.
  • radius. It a numerical value that defines the radius of the pie chart circle.
  • colors. Again, this is a python String-Type list containing the colors that you want to assign to each part of the pie-chart in order.
  • shadow. It is a boolean type argument and if set to True, gives shadow to the wedges. Its default value is False.
  • autopct. A String type argument to give formatted values to each of the parts. For example, '%1.1f %%' will display the percentages upto 1 decimal.
  • pctdistance. It is the distance from the centre of each of the pie-slices to the starting of the autopct generated text.
  • labeldistance. It is the distance of the label text starting to the centre of each pie-slice.
  • startangle. It rotates the pie-char counter-clockwise from x-axis by this much degrees.
  • counterclockwise. If set to False, sets the fractions direction clockwise. By default, its value is True. Hence, the default fractions direction is counter-clockwise.
  • wedgeprops. It is a Python Dictionary containing the properties for the wedges. You can check all of the wedge object properties here.
  • textprops. It is also a Python Dictionary that contains the properties of the percentage text. Find all of the text properties here.
  • explode. It is basically a Python List that contains radius fractions for each of the wedges that it has to be offset from the wedge.

Note. Among all of these parameters, only the x or the parts parameter is necessary to be passed as an argument while all of the other parameters are optional.

You can do a lot more using the matplotlib.pyplot.pie() method like creating the nested pie-charts. But that also requires the knowledge of some other modules like numpy for the sake of convenience. So, we’ll figure out that but in some other article.

I hope you found this guide useful. If so, do share it with others who are willing to learn Python. If you have any questions related to this article, feel free to ask us in the comments section.

And do not forget to subscribe to WTMatter!

Subscribe To WTMatter!

Receive updates of our latest articles via email. Enter your email address below to get started.

Leave a Reply

Your email address will not be published. Required fields are marked *