import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\\WINDOWS\\Fonts\\STXINGKA.TTF", size=14)#C:\WINDOWS\Fonts
fnt = {'family': 'serif',
'color': 'darkred',
'weight': 'normal',
'size': 16,
}
#mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题
def autolabel(rects):
"""
Attach a text label above each bar displaying its height
"""
for rect in rects:
height = rect.get_height()
ax.text(rect.get_x() + rect.get_width()/2., 1.02*height, '%d' % int(height),ha='center', va='bottom' )
N=5
y=(25, 32, 34, 20, 25)
index=np.arange(N)
fig, ax = plt.subplots()
pl=ax.bar(left=index,height=y,width=0.35,color='blue',yerr=1 )
plt.xlabel('班级',fontproperties=font)
plt.ylabel('人数',fontproperties=font)
plt.title("性别比例分析",fontproperties=font,fontdict=fnt)
plt.xticks((0,1,2,3,4,5),("1年级","2年级","3年级","4年级","5年级"),fontproperties=font)
autolabel(pl)
label = ["First", "Second", "Third","four","five"]
plt.legend(label, loc = 0, ncol = 5)
plt.show()
N = 5
men_means = (20, 35, 30, 35, 27)
men_std = (2, 3, 4, 1, 2)
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
rects1 = ax.bar(ind, men_means, width, color='r', yerr=men_std)
women_means = (25, 32, 34, 20, 25)
women_std = (3, 5, 2, 3, 3)
rects2 = ax.bar(ind + width, women_means, width, color='y', yerr=women_std)
# add some text for labels, title and axes ticks
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind + width / 2)
ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))
ax.legend((rects1[0], rects2[0]), ('Men', 'Women'))
autolabel(rects1)
autolabel(rects2)
plt.show()