Python编程深度学习绘图库之matplotlib


Posted in Python onDecember 28, 2018

matplotlib是python的一个开源的2D绘图库,它的原作者是John D. Hunter,因为在设计上借鉴了matlab,所以成为matplotlib。和Pillow一样是被广泛使用的绘图功能,而在深度学习相关的部分,matplotlib得宠的多。这篇文章将简单介绍一下如何安装以及使用它来画一些非常常见的统计图形。

概要信息

Python编程深度学习绘图库之matplotlib

注意事项:由于Python2支持到2020年,很多python库都开始主要支持python3了,matplotlib的主分支也已经是python3了。而这篇文章中为了简单,安装和demo代码依然是在python2.7上进行验证的。

安装

使用pip install即可直接安装。安装日志如下:

liumiaocn:tmp liumiao$ python -mpip install -U pip
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages (10.0.1)
liumiaocn:tmp liumiao$ 
liumiaocn:tmp liumiao$ python -mpip install -U matplotlib
Collecting matplotlib
 Downloading https://files.pythonhosted.org/packages/61/38/d70e8bf77d5cb27d5f3595edd0b3978825063feadd023786d2591e393e6e/matplotlib-2.2.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (13.7MB)
  100% |????????????????????????????????| 13.7MB 2.1MB/s 
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/6a/8a/718fd7d3458f9fab8e67186b00abdd345b639976bc7fb3ae722e1b026a50/pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
  100% |????????????????????????????????| 61kB 5.8MB/s 
Collecting backports.functools-lru-cache (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/03/8e/2424c0e65c4a066e28f539364deee49b6451f8fcd4f718fefa50cc3dcf48/backports.functools_lru_cache-1.5-py2.py3-none-any.whl
Collecting subprocess32 (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/fa/60/b50459f291cae6bc1d0ff711b75e5130684fd3949370fdba78f6c57c1903/subprocess32-3.5.2-cp27-cp27m-macosx_10_6_intel.whl
Collecting pytz (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl (510kB)
  100% |????????????????????????????????| 512kB 8.9MB/s 
Requirement not upgraded as not directly required: six>=1.10 in /usr/local/lib/python2.7/site-packages (from matplotlib) (1.11.0)
Collecting python-dateutil>=2.1 (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl (211kB)
  100% |????????????????????????????????| 215kB 7.2MB/s 
Collecting kiwisolver>=1.0.1 (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/79/d8/94633718f3f77dcb638687a77ba199325a1cb158d2d4b00c9dc17f2b5c72/kiwisolver-1.0.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (110kB)
  100% |????????????????????????????????| 112kB 5.9MB/s 
Collecting cycler>=0.10 (from matplotlib)
 Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Requirement not upgraded as not directly required: numpy>=1.7.1 in /usr/local/lib/python2.7/site-packages (from matplotlib) (1.14.5)
Requirement not upgraded as not directly required: setuptools in /usr/local/lib/python2.7/site-packages (from kiwisolver>=1.0.1->matplotlib) (39.2.0)
Installing collected packages: pyparsing, backports.functools-lru-cache, subprocess32, pytz, python-dateutil, kiwisolver, cycler, matplotlib
Successfully installed backports.functools-lru-cache-1.5 cycler-0.10.0 kiwisolver-1.0.1 matplotlib-2.2.2 pyparsing-2.2.0 python-dateutil-2.7.3 pytz-2018.4 subprocess32-3.5.2
liumiaocn:tmp liumiao$

确认

liumiaocn:~ liumiao$ pip show matplotlib
Name: matplotlib
Version: 2.2.2
Summary: Python plotting package
Home-page: http://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: BSD
Location: /usr/local/lib/python2.7/site-packages
Requires: pyparsing, backports.functools-lru-cache, subprocess32, pytz, six, python-dateutil, kiwisolver, cycler, numpy
Required-by: 
liumiaocn:~ liumiao$

使用

正弦函数

我们使用numpy和matplotlib可以非常简单地就能够画出正弦的波形图,具体代码如下:

liumiaocn:plot liumiao$ cat plot-1.py 
#!/usr/local/bin/python
import numpy as np
import matplotlib.pyplot as plot
print("y=sin(x): x with range fo -4pi to 4pi")
x=np.arange(-4*np.pi, 4*np.pi, 0.1)
y=np.sin(x)
#print sin
plot.plot(x,y)
plot.show()
liumiaocn:plot liumiao$

执行&结果确认

liumiaocn:plot liumiao$ python plot-1.py 
y=sin(x): x with range fo -4pi to 4pi

Python编程深度学习绘图库之matplotlib

直方图

最简单的直方图的做法,可以通过bar或者hist来创建

liumiaocn:plot liumiao$ cat plot-2.py 
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(7)
y = (10,15,24,7,14,30,20)
plt.bar(x,y)
plt.show()
liumiaocn:plot liumiao$

Python编程深度学习绘图库之matplotlib

饼图

使用pie函数创建饼图

liumiaocn:plot liumiao$ cat plot-3.py 
#!/usr/local/bin/python
import matplotlib.pyplot as plt
dateinf = '06/01', '06/02', '06/03', '06/04', '06/05', '06/06', '06/07'
bugnums = [11,22,7,29,24,15,18]
plt.pie(bugnums, labels=dateinf)
plt.show()
liumiaocn:plot liumiao$

Python编程深度学习绘图库之matplotlib

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
零基础写python爬虫之神器正则表达式
Nov 06 Python
python简单程序读取串口信息的方法
Mar 13 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Python jieba库用法及实例解析
Nov 04 Python
python matplotlib拟合直线的实现
Nov 19 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
学python需要去培训机构吗
Jul 01 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python使用glob检索文件的操作
May 20 Python
对pandas写入读取h5文件的方法详解
Dec 28 #Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 #Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 #Python
python 检查是否为中文字符串的方法
Dec 28 #Python
浅谈python3发送post请求参数为空的情况
Dec 28 #Python
python3使用flask编写注册post接口的方法
Dec 28 #Python
python通过tcp发送xml报文的方法
Dec 28 #Python
You might like
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php不用正则验证真假身份证
2013/11/06 PHP
PHP 断点续传实例详解
2017/11/11 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
python 提取文件的小程序
2009/07/29 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Django 限制访问频率的思路详解
2019/12/24 Python
python 怎样进行内存管理
2020/11/10 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
火锅店创业计划书范文
2014/02/02 职场文书
党性观念心得体会
2014/09/03 职场文书
年度考核个人总结
2015/03/06 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript