【Python开发】使用python中的matplotlib进行绘图分析数据

2019年11月25日 阅读数:137
这篇文章主要向大家介绍【Python开发】使用python中的matplotlib进行绘图分析数据,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

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

它的文档至关完备,而且 Gallery页面 中有上百幅缩略图,打开以后都有源程序。所以若是你须要绘制某种类型的图,只须要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。html

 

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

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


快速绘图\

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

 

?
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: 皮皮
'''
importstring
importmatplotlib.pyplot as plt 
importnumpy as np
 
if__name__ == '__main__':   
    file = open(E:machine_learningdatasetshousing_datahousing_data_ages.txt, 'r')
    linesList = file.readlines()
#     print(linesList)
    linesList = [line.strip().split(,) forline in linesList]
    file.close()   
    print(linesList:)
    print(linesList)
#     years = [string.atof(x[0])forx in linesList]
    years = [x[0]forx in linesList]
    print(years)
    price = [x[1]forx 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(*2000yuan))
    plt.ylim(0,15)
    plt.title('line_regression & gradient decrease')
    plt.legend()
    plt.show()
\



 

matplotlib中的快速绘图的函数库能够经过以下语句载入:web

?
1
importmatplotlib.pyplot as plt

pylab模块express

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

接下来调用figure建立一个绘图对象,而且使它成为当前的绘图对象。数组

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

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

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

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

?
1
2
3
>>>importmatplotlib
>>> 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以后,用关键字参数指定各类属性: