• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中的Matplotlib模块入门教程

Python中的Matplotlib模块入门教程

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python matplotlib,python安装matplotlib,python中matplotlib,python3 matplotlib,matplotlib python2.7等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1 关于 Matplotlib 模块

Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。

Matplotlib 目前包含了37个不同的模块, 如 matlab, mathtext, finance, dates

等等,其中与绘图关系最直接的是 matlab 模块。可以用下面的命令装载并查看它提供的函数

>>> import matplotlib.matlab
>>> dir(matplotlib.matlab)

</div>

如果要了解模块中某个函数的使用方法,可以使用 help 命令。如下面的命令

>>> help(legend)
>>> help(plot)

</div>

会返回 legend 和 plot 这两个函数的信息。

本文拟通过一些实例来说明 matplotlib 的这些主要特点。相信通过阅读这些例子,您能对 Matplotlib 的使用有一个基本的了解。

2 绘制一组幂函数

先从一个简单的例子开始讨论。假设要在一个图形中显示一组幂函数。这组幂函数的基不同,分别为10,自然对数 e 和2。可以用如下 Python 脚本去描绘这组曲线,生成的图形如图1所示。

  from matplotlib.matlab import * 
 
 x = linspace(-4, 4, 200) 
 f1 = power(10, x) 
 f2 = power(e, x) 
 f3 = power(2, x) 
 
 plot(x, f1, 'r', x, f2, 'b', x, f3, 'g', linewidth=2) 
 axis([-4, 4, -0.5, 8])
 text(1, 7.5, r'$10^x$', fontsize=16)
 text(2.2, 7.5, r'$e^x$', fontsize=16)
 text(3.2, 7.5, r'$2^x$', fonsize=16)
 title('A simple example', fontsize=16)
 
 savefig('power.png', dpi=75)
 show()

</div>

图1: 一组幂函数

2015415102134104.png (600×450)

程序的第一行装载了 matlab 模块。接下来的几行语句(至 savefig 之前)好像是在运行 Matlab 程序,因为 linspace, power, plot,axis, text, title 这些函数在 Matlab 中也存在。这个例子展示了 Matplotlib 中几个比较常用的绘图函数,如 plot,axis,title 等的用法。其中 plot 是一个功能十分强大的函数, 通过改变它的参数选项,可以灵活地修改图形的各种属性,比如选用的线型,颜色,宽度等。

显示图形中的数学公式

Matplotlib 可以支持一部分 TeX 的排版指令,因此用户在绘制含有数学公式的图形时会感到很方便并且可以得到比较满意的显示效果,所需要的仅仅是一些 TeX 的排版知识。下面的这个例子显示了如何在图形的不同位置上, 如坐标轴标签,图形的标题以及图形中适当的位置处,显示数学公式。相应的 Python 程序如下, 生成的图形见图2。

from matplotlib.matlab import *
def  f(x, c):
    m1 = sin(2*pi*x)
    m2 = exp(-c*x)
return multiply(m1, m2)
x = linspace(0, 4, 100)
sigma = 0.5
plot(x, f(x, sigma), 'r', linewidth=2)
xlabel(r'$\rm{time}  \  t$', fontsize=16)
ylabel(r'$\rm{Amplitude} \ f(x)$', fontsize=16)
title(r'$f(x) \ \rm{is \ damping  \ with} \ x$', fontsize=16)
text(2.0, 0.5, r'$f(x) = \rm{sin}(2 \pi  x^2) e^{\sigma x}$', fontsize=20)
savefig('latex.png', dpi=75)
show()

图2: 图形中数学公式的显示

2015415102236845.png (600×450)

从程序中可以看出,在 Matplotlib 中进行有关数学公式的排版是很简单的。与 TeX 排版时的约定一样,要插入的公式部分由一对美元符号 $ 来进行标识,而具体的排版命令与 TeX 一样。在任何可以显示文本的地方(如轴的标签,标题处等)都可以插入需要的公式。需要注意的是,数学公式所在的字符串开始之处有一个标记 r,表示该字符串是一个 raw string。这是因为排版公式时,字符串所包含的内容必须按照 TeX 的规范,而不是其他的规范,来进行解析。所以使用 raw string 可以避免其它规则解释字符串中某些特殊字符所带来的歧义。从生成的图形可以看到,公式显示的效果是比较美观的。

3 绘制其他格式的图形

除了常用的线图,Matplotlib 还可以绘制其他种类的图形,如直方图,饼图,误差线图等等。下面是一个处理实验数据的例子。它用直方图的形式比较了实际测量电流和理论计算电流,同时还显示了测量的误差分布情况。程序首先读取实验数据 current.dat,获得数据后利用函数 bar 进行绘图。

from matplotlib.matlab import * 
filename = "d:\\wei\\exp\\current.dat"
X = load(filename)
dp = X[:, 0]
i_mea = X[:, 1]
i_mea_err = X[:, 2]
i_cal = X[:, 3]
i_cal_err = X[:, 4]
width = 3
h1 = bar(dp, i_mea, width, color='r', yerr=i_mea_err)
h2 = bar(dp+width, i_cal, width, color='b', yerr=i_cal_err)
xlabel('Particle diameter (nm)', fontsize=16)
xticks(dp+width, dp)
ylabel('Signal current (nA)', fontsize=16)
title('Measured current vs. calculated current')
legend((h1[0], h2[0]), ('measured current', 'calculated current'), loc=2)
savefig('current.png', dpi=75)
show()

</div>

图3 :测量电流 vs. 计算电流

2015415102309394.png (600×450)

从程序中可以看出,函数 load 极大地方便了数据文件的读取工作(不需要自己写代码来处理数据文件了),它的输出直接被传递至函数 bar 中,进而完成直方图和误差线图的绘制。

4 GLP 集合计算结果的可视化

Python 是一种比较适合用来进行科学计算的脚本语言,如果利用了 Numeric 及 Numarray 模块,它的计算能力还能得到进一步的增强。 Matplotlib 也充分利用了这两个模块,可以高质量地完成计算结果可视化的工作。下面是一个计算和显示两维好格子点 GLP (Good Lattice Point Set)集合的例子。 GLP 集合是一种用算法产生的伪随机数的集合,它在一些优化计算中很有用,详细的介绍可以在参考文献里找到。下面的 Python 程序先定义了一个函数 glp(n1, n2) 用以产生需要的 GLP 集合, 接着利用 Matplotlib 来显示它的分布情况(应该是均匀分布的)。

# A two dimensional GLP set 
# with n1=377, n2=610
from matplotlib.matlab import *
def glp(n1, n2):
 q = zeros((2, n2), Float)
 h1 = 1; h2 = n1
 for i in arange(n2-1):
 q[0][ i] = (fmod(h1*(i+1), n2)-0.5)/n2
 q[1][ i] = (fmod(h2*(i+1), n2)-0.5)/n2
 q[0][n2-1] = (n2-0.5)/n2
 q[1][n2-1] = (n2-0.5)/n2
 return q
n1 = 377; n2 = 610
q = glp(n1, n2)
x = q[0, :]
y = q[1, :]
plot(x, y, 'r.', linewidth=2)
axis([0, 1, 0, 1])
title(r'$\rm{GLP \ set \ with} \ n_1 = 377, \ n_2 = 610$')
savefig('glp.png', dpi = 75)
show()

</div>

图4: GLP 集合的分布

2015415102338194.png (600×450)

最初我们是用 Matlab 来完成这个工作的,现在用 Python 来实现一样很简洁。程序中函数 glp 的实现主要是利用了模快 Numeric,计算得到的结果用 plot 函数直接加以显示,十分方便。这个例子(包括上一个例子)显示了,在利用 Python 进行某些科学及工程计算时,Matplotlib 往往能简洁高效地完成计算结果可视化的工作。

5 工作模式及图形的输出方式

最后简单的介绍一下 Matplotlib 的工作模式以及输出图形的方式。Matplotlib 有两种工作模式:交互模式 (interactive mode) 以及批处理模式 (batch mode)。很容易理解这两种模式的差别。第一种模式就是在某个 Python Shell 的提示符下逐个运行绘图的命令。

第二种模式是先把绘图命令写成一个脚本文件然后在适当的环境中执行这个文件。 最终图形的输出也有两种方式,即 GUI 输出方式和非 GUI 输出方式。简单地说,GUI 方式的输出是把产生的图形直接显示在屏幕上;而非 GUI 方式的输出则是把图形保存为某种格式的文件,比如ps,png格式的文件。不论哪一种方式都与系统使用的 backend 有关 (backend 可以理解为后端的绘图引擎)。与 GUI方式输出有关的 backend 包括 WxPython, TkAgg, Tkinter 等。而与非 GUI 方式有关

您可能想查找下面的文章:

  • 利用numpy+matplotlib绘图的基本操作教程
  • 利用matplotlib+numpy绘制多种绘图的方法实例
  • python使用matplotlib绘制柱状图教程
  • python使用matplotlib绘制折线图教程
  • python利用matplotlib库绘制饼图的方法示例
  • Windows下为Python安装Matplotlib模块
  • Python使用matplotlib实现在坐标系中画一个矩形的方法
  • Python使用matplotlib绘制动画的方法
  • Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
  • Python Matplotlib库入门指南

相关文章

  • 详解Python 数据库 (sqlite3)应用
  • 使用pdb模块调试Python程序实例
  • Windows下安装python2.7及科学计算套装
  • Python实现的批量下载RFC文档
  • 列举Python中吸引人的一些特性
  • python 根据正则表达式提取指定的内容实例详解
  • Python中exit、return、sys.exit()等使用实例和区别
  • 详解python进行mp3格式判断
  • Python中pip安装非PyPI官网第三方库的方法
  • python实现360的字符显示界面

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python实现给qq邮箱发送邮件的方法
    • Python实现代码统计工具(终极篇)
    • Python 爬虫学习笔记之单线程爬虫
    • 在Django的模型和公用函数中使用惰性翻译对象
    • Python实现抓取城市的PM2.5浓度和排名
    • python中私有函数调用方法解密
    • python批量下载图片的三种方法
    • django使用图片延时加载引起后台404错误
    • python制作最美应用的爬虫
    • python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有