matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
现在我们从最简单的例子开始讲解,
import matplotlib.pyplot as plt
plt.xlabel('sex')
plt.ylabel('number')
plt.bar(left = (0,1),height=(0.8,0.5),width=0.25)
plt.show()
left:表示左边缘上的值,
height: 表示y轴上的值,
width:表示矩形bar的宽度
使用plt.xlabel和plt.ylabel来说明x和y轴坐标意义。
下面通过plt.xticks来说明x轴每条bar分别代表的意义,
使用align对说明的位置进行控制
import matplotlib.pyplot as plt
plt.xlabel('sex')
plt.ylabel('number')
plt.xticks((0,1),('male','female'))
plt.bar(left = (0,1),height=(0.8,0.5),width=0.25,align = 'center')
plt.show()
接下来通过plt.title给绘制的图像添加标题
最后还有就是对Y轴每条bar上添加对应值的显示,同时添加 legend,通过plt.bar中的参数yerr设置y轴突出的长度。
import matplotlib.pyplot as plt
def autolabel(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2.,1.04*height,'%s'%float(height))
plt.xlabel('sex')
plt.ylabel('number')
plt.xticks((0,1),('male','female'))
plt.title('sex ratio analysis')
rect = plt.bar(left = (0,1),height=(0.8,0.5),width=0.25,align = 'center',yerr = 0.0001)
plt.legend(rect,['legend11'],bbox_to_anchor = (0.95,0.95))
autolabel(rect)
plt.show()