matplotlib绘制条形图

本文主要讲解如何通过Python主流绘图库matplotlib绘制条形图

使用matplotlib绘制图形有时会让人感到麻烦,我自己曾经就学过R语言的ggplot2绘图包,说实在的,确实好用。但为什么还要学习matplotlib?其一是想进一步加深对Python的理解,其二是想着掌握matplotlib之后,很多工作就可以直接在Python中直接完成,不用像以前那样,在Python中进行数据分析,回过头又去R中绘图。

这两天学习了一下matplotlib,最大的感悟就是相对于ggplot2来说,matplotlib的绘图让人感觉到更为基层一些,因为ggplot2对一些常见的绘图都进行了很好的封装,基本只需要一辆行代码就可以绘制出一幅标准的图形。然而通过matplotlib的绘图,能够让绘图者的思路更加清晰,你只需要按照手工作图的思路去考虑绘制一幅图形需要哪些元素,然后一步一步的进行就可以。

下面将为读者展示如何通过matplotlib绘制简单条形图,虽说代码相对较长,但不同于ggplot2中的较为完整的封装,阅读如下代码会让你感觉逻辑上更为清晰,严谨。

from matplotlib import pyplot as plt
import numpy as np
#这节课,我们学习如何通过matplotlib绘制简单条形图
#第一步,取出一张白纸
fig=plt.figure(1)
#第二步,确定绘图范围,由于只需要画一张图,所以我们将整张白纸作为绘图的范围
ax1=plt.subplot(111)
#第三步,整理我们准备绘制的数据
data=np.array([15,20,18,25])
#第四步,准备绘制条形图,思考绘制条形图需要确定那些要素
#1、绘制的条形宽度
#2、绘制的条形位置(中心)
#3、条形图的高度(数据值)
width=0.5
x_bar=np.arange(4)
#第五步,绘制条形图的主体,条形图实质上就是一系列的矩形元素,我们通过plt.bar函数来绘制条形图
rect=ax1.bar(left=x_bar,height=data,width=width,color="lightblue")
#第六步,向各条形上添加数据标签
for rec in rect:
    x=rec.get_x()
    height=rec.get_height()
    ax1.text(x+0.1,1.02*height,str(height))
#第七步,绘制x,y坐标轴刻度及标签,标题
ax1.set_xticks(x_bar)
ax1.set_xticklabels(("first","second","third","fourth"))
ax1.set_ylabel("sales")
ax1.set_title("The Sales in 2016")
ax1.grid(True)
ax1.set_ylim(0,28)
plt.show()

简单条形图

猜你喜欢

转载自blog.csdn.net/zhangxiaojiakele/article/details/78014627