深度学习之Python的可视化包 – Matplotlib
来源:互联网 发布:java程序员前景怎么样 编辑:程序博客网 时间:2024/05/22 15:01
5.4 Python的可视化包 – Matplotlib
Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表。Matplotlib最早是为了可视化癫痫病人的脑皮层电图相关的信号而研发,因为在函数的设计上参考了MATLAB,所以叫做Matplotlib。Matplotlib首次发表于2007年,在开源和社区的推动下,现在在基于Python的各个科学计算领域都得到了广泛应用。Matplotlib的原作者John D. Hunter博士是一名神经生物学家,2012年不幸因癌症去世,感谢他创建了这样一个伟大的库。
安装Matplotlib的方式和numpy很像,可以直接通过Unix/Linux的软件管理工具,比如Ubuntu 16.04 LTS下,输入:
>> sudo apt install python-matplotlib
或者通过pip安装:
>> pip install matplotlib
Windows下也可以通过pip,或是到官网下载:
python plotting – Matplotlib 1.5.3 documentation
Matplotlib非常强大,不过在深度学习中常用的其实只有很基础的一些功能,这节主要介绍2D图表,3D图表和图像显示。
5.4.1 2D图表
Matplotlib中最基础的模块是pyplot。先从最简单的点图和线图开始,比如我们有一组数据,还有一个拟合模型,通过下面的代码图来可视化:
matplotlib和pyplot的惯用别名分别是mpl和plt,上面代码生成的图像如下:
基本的画图方法就是这么简单,如果想了解更多pyplot的属性和方法来画出风格多样的图像,可以参考官网:
pyplot – Matplotlib 1.5.3 documentation
Customizing matplotlib
点和线图表只是最基本的用法,有的时候我们获取了分组数据要做对比,柱状或饼状类型的图或许更合适:
在这段代码中又出现了一个新的东西叫做,一个用ax命名的对象。在Matplotlib中,画图时有两个常用概念,一个是平时画图蹦出的一个窗口,这叫一个figure。Figure相当于一个大的画布,在每个figure中,又可以存在多个子图,这种子图叫做axes。顾名思义,有了横纵轴就是一幅简单的图表。在上面代码中,先把figure定义成了一个一行两列的大画布,然后通过fig.add_subplot()加入两个新的子图。subplot的定义格式很有趣,数字的前两位分别定义行数和列数,最后一位定义新加入子图的所处顺序,当然想写明确些也没问题,用逗号分开即可。。上面这段代码产生的图像如下:
5.3.1 3D图表
Matplotlib中也能支持一些基础的3D图表,比如曲面图,散点图和柱状图。这些3D图表需要使用mpl_toolkits模块,先来看一个简单的曲面图的例子:
这个例子中先生成一个所有值均为0的复数array作为初始频谱,然后把频谱中央部分用随机生成,但同时共轭关于中心对称的子矩阵进行填充。这相当于只有低频成分的一个随机频谱。最后进行反傅里叶变换就得到一个随机波动的曲面,图像如下:
3D的散点图也是常常用来查看空间样本分布的一种手段,并且画起来比表面图和网线图更加简单,来看例子:
这个例子中,为了方便,直接先采样了一堆3维的正态分布样本,保证方向上的均匀性。然后归一化,让每个样本到原点的距离为1,相当于得到了一个均匀分布在球面上的样本。再接着把每个样本都乘上一个均匀分布随机数的开3次方,这样就得到了在球体内均匀分布的样本,最后根据判别平面3x+2y-z-1=0对平面两侧样本用不同的形状和颜色画出,图像如下:
5.3.1 图像显示
Matplotlib也支持图像的存取和显示,并且和OpenCV一类的接口比起来,对于一般的二维矩阵的可视化要方便很多,来看例子:
这段代码中第一个例子是读取一个本地图片并显示,第二个例子中直接把上小节中反傅里叶变换生成的矩阵作为图像拿过来,原图和经过乘以3再加4变换的图直接绘制了两个形状一样,但是值的范围不一样的图案。显示的时候imshow会自动进行归一化,把最亮的值显示为纯白,最暗的值显示为纯黑。这是一种非常方便的设定,尤其是查看深度学习中某个卷积层的响应图时。得到图像如下:
只讲到了最基本和常用的图表及最简单的例子,更多有趣精美的例子可以在Matplotlib的官网找到:
Thumbnail gallery – Matplotlib 1.5.3 documentation
- 深度学习之Python的可视化包 – Matplotlib
- Python数据可视化之Matplotlib学习笔记
- python可视化-matplotlib学习
- Python 之大数据量的可视化----Matplotlib
- python中用matplotlib包进行简单的可视化
- 通过python的matplotlib包将Tensorflow数据进行可视化
- python可视化-matplotlib学习2
- 数据可视化-Python之Matplotlib
- python数据可视化之matplotlib
- 深度学习之Python的科学计算包 – Numpy
- python数据分析之数据可视化matplotlib
- Python之数据可视化神奇-Matplotlib
- Python数据可视化之Matplotlib基础
- python之matplotlib学习
- 使用Python的netCDF4和matplotlib.basemap包进行气象数据的可视化
- 深度学习Dya1-初识Python(Python环境搭建及numpy、matplotlib包安装)
- Matplotlib入门:Python的可视化绘制工具包
- Python可视化库Matplotlib的使用
- 谁是安全界奥斯卡“Pwnie Awards”?
- 面对人工智能,学而优者的正确入局姿势是怎样的?
- 一篇文章看懂中国无人驾驶30年
- Android Studio 代码找错
- MP3解码--怎样解码mp3音频流,MP3Decoder(MP3流解码代码库)-《零度屏幕录像软件》
- 深度学习之Python的可视化包 – Matplotlib
- 观点≠误解:专家解析自动驾驶的得与失
- 编译php ./configure命令enable和with有什么区别
- 13.1 摘要认证的改进
- 贪心算法
- 机器学习实验---调用sklearn库实现GBM
- table表格
- ubuntu环境下,Java连接MySQL数据库
- 特斯拉的新篇章:太阳能、汽车共享与更多产品线