How to change Bar Chart values to percentages in Matplotlib?

To change bar chart values to percentage in matplotlib, we can take the following steps


  • Set the figure size and adjust the padding between and around the subplots.

  • Make a list of frequencies.

  • Create a new figure or activate an existing figure.

  • Make a bar plot using bar() method.

  • Iterate the bar plot and find the height of each patch and use annotate() method to put values in percentages.

  • To display the figure, use Show() method.


import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

frequencies = [7, 8, 5, 3, 6]


p1 =, frequencies)

for rect1 in p1:
    height = rect1.get_height()
    plt.annotate( "{}%".format(height),(rect1.get_x() + rect1.get_width()/2, height+.05),ha="center",va="bottom",fontsize=15)


It will produce the following output −

Updated on: 09-Oct-2021

9K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started