matplotlib python绘图

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。

 

Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不习惯,而且画图质量不高。

而 Matplotlib则比较强:Matlab的语法、python语言、latex的画图质量(还可以使用内嵌的latex引擎绘制的数学公式)。


快速绘图\

matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。例子:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding=gbk
'' '
Created on Jul 12 , 2014
python 科学计算学习:numpy快速处理数据测试
@author : 皮皮
'' '
import string
import matplotlib.pyplot as plt 
import numpy as np
 
if __name__ == '__main__' :   
     file = open(E:machine_learningdatasetshousing_datahousing_data_ages.txt, 'r' )
     linesList = file.readlines()
#     print(linesList)
     linesList = [line.strip().split(,) for line in linesList]
     file.close()   
     print(linesList:)
     print(linesList)
#     years = [string.atof(x[ 0 ]) for x in linesList]
     years = [x[ 0 ] for x in linesList]
     print(years)
     price = [x[ 1 ] for x in linesList]
     print(price)
     plt.plot(years, price, 'b*' )#,label=$cos(x^ 2 )$)
     plt.plot(years, price, 'r' )
     plt.xlabel(years(+ 2000 ))
     plt.ylabel(housing average price(* 2000 yuan))
     plt.ylim( 0 , 15 )
     plt.title( 'line_regression & gradient decrease' )
     plt.legend()
     plt.show()
\

 

matplotlib中的快速绘图的函数库可以通过如下语句载入:

?
1
import matplotlib.pyplot as plt

pylab模块

matplotlib还提供了名为pylab的模块,其中包括了许多numpy和pyplot中常用的函数,方便用户快速进行计算和绘图,可以用于IPython中的快速交互式使用。

接下来调用figure创建一个绘图对象,并且使它成为当前的绘图对象。

?
1
plt.figure(figsize=( 8 , 4 ))

也可以不创建绘图对象直接调用接下来的plot函数直接绘图,matplotlib会为我们自动创建一个绘图对象。如果需要同时绘制多幅图表的话,可以是给figure传递一个整数参数指定图标的序号,如果所指定序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。

通过figsize参数可以指定绘图对象的宽度和高度,单位为英寸;dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。因此本例中所创建的图表窗口的宽度为8*80 = 640像素。

但是用工具栏中的保存按钮保存下来的png图像的大小是800*400像素。这是因为保存图表用的函数savefig使用不同的DPI配置,savefig函数也有一个dpi参数,如果不设置的话,将使用matplotlib配置文件中的配置,此配置可以通过如下语句进行查看:

?
1
2
3
>>> import matplotlib
>>> matplotlib.rcParams[savefig.dpi]
100

下面的两行程序通过调用plot函数在当前的绘图对象中进行绘图:

?
1
2
plt.plot(years, price, 'b*' )#,label=$cos(x^ 2 )$)
plt.plot(years, price, 'r' )

plot函数的调用方式很灵活,第一句将x,y数组传递给plot之后,用关键字参数指定各种属性:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值