码迷,mamicode.com
首页 > 其他好文 > 详细

py科学绘图库matplotlib详细教程

时间:2015-08-30 08:48:46      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:python   数据分析   matplotlib   numpy   

前言

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)组成
  • 生成数组
  • 数组方法

未完待续

版权声明:本文为博主原创文章,未经博主允许不得转载。

py科学绘图库matplotlib详细教程

标签:python   数据分析   matplotlib   numpy   

原文地址:http://blog.csdn.net/czfblog/article/details/48101553

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!