py科学绘图库matplotlib详细教程
2015-08-30 08:16
691 查看
前言
Matplotlib是一个可以绘制2D数据图形的python库,利用它可以绘制出各种各样的数据图表。安装
linux or mac
命令行键入sudo pip install matplotlib
win
要管理员权限pip install matplotlib
推荐下载Anaconda,一个python的拓展包,包含了195个关于科学,数学,工程,数据分析的py库,安装一个就可以解决大部分库安装的问题。里面还包括了IPython和Spyder。
运行环境
这一节可以跳过既然是绘图库,肯定有图片,可是命令行大部分不支持显示图片,所以要用到外部扩展命令行或程序。
下面说四种方法来显示图片:
1.保存成图片,用图片浏览器打开
这个方法在调试时最不好用,不过在批量生成图片时,可以批量保存用。用
savefig函数,这个以后细说。
2.用matplotlib自带的图片预览器
它自带了一个图片查看器,如果当前命令行不支持图片展示的话,会自动启动这个预览器。缺点就是每一次都要手动关闭
3.用IPython显示图片
Ipython是一个python命令行扩展。提供一个交互环境,来调试py程序,基本上就像Mathematical一样,重点是它支持直接在命令行里显示图片,就像这样:4.Spyder
Spyder是一个python的IDE,主要用来做科学计算的,界面类似于MATLAB,直接上图:正文
废话扯完了,开始正文了。基本绘图
这一节来画最简单的这个:分析:
上图是由一条正弦曲线和余弦曲线组成,所以要获取曲线数据才能绘制。代码:
# -*- coding: utf-8 -*- #载入pylab from pylab import * #用numpy生成X轴数据 X = np.linspace(-np.pi, np.pi, 256,endpoint=True) #用numpy根据numpy生成sin,cos数据 C,S = np.cos(X), np.sin(X) #根据数据绘制 plot(X,C) plot(X,S) #显示图片,如果在命令行模式,会弹出图片预览窗口, #IPython下,直接在命令行展示图片 show()
本文是用python2.7。
pylab提供了一个针对matplotlib面向对象绘图库的程序界面。它模仿Matlab(TM)开发。
运行
无视这一小节打开ipython,直接复制粘贴上面的代码,按回车,就可以看到图片了,如果提示找不到库,用
sudo pip install +对应包名就可以了,如果还不行,去问度娘。
打开Spyder新建项目,在项目里新建一个py文件,将代码复制粘贴进去,在编辑器的右方或下方的控制台部分,选择
IPython console,按F5运行,就可以在IPython console里看到图片了。
Numpy
Numpy是一个用来科学计算的库,为Python提供了任意维数的数组对象(ndarray,n-dimensional array object)还有通用函数对象(ufunc,universal function object)。Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。
Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组,也没有各种运算函数。因而不适合数值运算。
而NumPy的出现弥补了这些不足。(——摘自张若愚的《Python科学计算》)
上面绘制正余弦函数图像时,就用到了numpy来生成数据,
C,S = np.cos(X), np.sin(X),这时,C、S就是numpy数组对象。
我们要绘图,就得把数据转换成数组对象
numpy数组简单教程
点击每一个函数名,可直接跳转到文档数组里每一个数据的类型都相同
由实际所持有的数据和描述这些数据的元数据(metadata)组成
生成数组
np.arange()等同于py的range函数,不过返回是numpy数组
np.array(list)接受一个对象(list,map,etc.),转换成numpy数组
*
np.linspace(start,stop,num=50)返回从start到stop的num个间隔数字组成的数组
数组方法
array.tolist()返回py的list
未完待续
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法