Mar-31-2020, 07:21 PM
(This post was last modified: Mar-31-2020, 07:26 PM by WhatsupSmiley.)
Hi there, I am trying to figure out how to display the percentage values above each bar in my bar graph. I am using matplotlib and I created a dataframe that has the percentage.
Here is my code for the dataframe:

Here is my code for the dataframe:
%matplotlib inline import matplotlib as mpl import matplotlib.pyplot as plt #sort the dataframe in descending order of Very Interested, Somewhat Interested, and Not Interested df_VInt = df_TopSurvey.sort_values(by='Very interested', ascending=False) #Convert the numbers into percentages of the total number of respondents perc = (df_VInt /2233) *100 perc = round (perc, 2) percwhich shows:
Output:
Very interested Somewhat interested Not interested
Data Analysis / Statistics 75.59 19.88 2.69
Machine Learning 72.95 21.36 3.31
Data Visualization 60.01 32.87 4.57
Big Data (Spark / Hadoop) 59.65 32.65 5.69
Deep Learning 56.56 34.48 6.09
Data Journalism 19.21 48.41 27.32Here is the code I have for my bargraph (and what I've tried to get the percentage to show on top of each bar of the graph):colors = ['#5cb85c','#5bc0de','#d9534f']
perc.plot(kind='bar', figsize=(20,8), width=0.8, color=colors, )
plt.xlabel('Data Science Areas', fontsize=14)
plt.ylabel('Percentage of Respondents', fontsize=14)
plt.title('Percentage of Respondents Interest in Data Science Areas', fontsize=16)
plt.xticks(fontsize=14)
for spine in plt.gca().spines.values():
spine.set_visible(False)
plt.yticks([])
for p in ax.patches:
width, height = p.get_width(), p.get_height()
x,y=p.get_xy()
ax.annotate('{:.0%}', format(height), (x,y + height + 0.01))
plt.show()And this is what I get: