Matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。它提供了一整套和 matlab 相似的命令 API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入 GUI 应用程序中。可以说是现在python数据分析中,用的人最多的图形库了。
Matplotlib 采用面向对象的技术,所以图表的各个元素都是对象。但由于调用对象的接口进行绘图比较繁琐,所以Matplotlib 还拥有快速绘图的pyplot模块。其中包括了Numpy和pyplot的很多常用的函数,方便用户快速绘图。十分适合应用在IPython交互环境中。
调用figure()创建一个Figure(图表)对象,并且它将成为当前的Figure对象。也可以不创建Figure对象而直接调用接下来的plot()进行绘图,此时Matplotlib会自动创建一个Figure对象。figsize指定Figure对象的长度和高度,单位是英寸。此外还可以用dpi参数来设置Figure对象的分辨率,即每英寸所表示的像素数。默认值是80。此Figure对象的宽度为8 * 80 = 640。
创建Figure对象之后,接下来调用plot()在当前的Figure对象中绘图。实际上plot()是在Axes(子图)对象上绘图,如果当前的Figure对象中没有Axes对象,将会为之创建一个几乎充满整个图表的Axes对象,并且使此时Axes对象成为当前的Axes对象。plot()的前两个参数分别表示X,Y轴数据的对象,这里使用Numpy数组。使用关键字参数可以指定所绘制曲线的各种属性。
还可以用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定:
plt.savefig("test.png", dpi = 120
(1)将 matplotlib 库导入
import matplotlib.pyplot as plt
(2)绘制 sin 函数图像,x介于0到10之间
(3)改用点加线的方式绘制 sin 函数图像
(4)改用散点图的方式绘制 sin 函数的点图像
(5)绘制饼图,用颜色和面积可视化一组 4维数据
(6)绘制一组误差为±0.8的数据的误差条图
(7)绘制一个柱状图
(8)绘制一个水平方向柱状图
(9)绘制1000个随机值的直方图
(10)设置直方图分30个bins,并设置为频率分布
(11)在一张图中绘制3组不同的直方图,并设置透明度
(12)绘制一张二维直方图
(13)绘制一张设置网格大小为30的六角形直方图
(14)绘制x=(0,10)间sin的图像,设置线性为虚线
(15)设置y轴显示范围为(-1.5,1.5)
(16).设置x,y轴标签variable x,value y
(17)设置图表标题“三角函数”
(18)显示网格
(19)绘制平行于x轴y=0.8的水平参考线
(20)绘制垂直于x轴x<4 and x>6的参考区域,以及y轴y<0.2 and y>-0.2的参考区域
(21)添加注释文字sin(x)
(22)用箭头标出第一个峰值
(23)在一张图里绘制sin,cos的图形,并展示图例
(24)调整图例在左上角展示,且不显示边框
(25)调整图例在画面下方居中展示,且分成2列
(26)绘制的
图像,并只显示前2者的图例
(27)将图例分不同的区域展示
(28)展示色阶
(29)改变配色为'gray'
(30)将色阶分成6个离散值显示
(31)在一个1010的画布中,(0.65,0.65)的位置创建一个0.20.2的子图
(32)在2个子图中,显示sin(x)和cos(x)的图像
(33)用for
创建6个子图,并且在图中标识出对应的子图坐标
(34)设置相同行和列共享x,y轴
(35)用[]
的方式取出每个子图,并添加子图座标文字
(36)组合绘制大小不同的子图
(37)显示一组二维数据的频度分布,并分别在x,y轴上,显示该维度的数据的频度分布
(38)创建一个三维画布
(39)绘制一个三维螺旋线
(40)绘制一组三维点
(41)展示前5个宝可梦的Defense,Attack,HP
的堆积条形图
(42)展示前5个宝可梦的Attack,HP
的簇状条形图
(43)展示前5个宝可梦的Defense,Attack,HP
的堆积图
(44)公用x轴,展示前5个宝可梦的Defense,Attack,HP
的折线图
(45)展示前15个宝可梦的Attack,HP
的折线图
(46)用scatter的x,y,c属性,展示所有宝可梦的Defense,Attack,HP
数据
(47)展示所有宝可梦的攻击力的分布直方图,bins=10
(48)展示所有宝可梦Type 1
的饼图
(49)展示所有宝可梦Type 1
的柱状图
(50)展示综合评分最高的10只宝可梦的系数间的相关系数矩阵
获取源码
后台回复:0801,获取源码
Matplotlib从入门到精通mp.weixin.qq.com