【python笔记】使用matplotlib,pylab进行python绘图

     一提到 python 绘图,matplotlib 是不得不提的 python 最著名的绘图库,它里面包含了类似 matlab 的一整套绘图的 API。因此,作为想要学习 python 绘图的童鞋们就得在自己的 python 环境中安装 matplotlib 库了,安装方式这里就不多讲,方法有很多,给个参考的

  本文将在已安装 matplotlib 的环境中教新手如何快速使用其中的接口进行绘图操作,并展现一个非常直观的绘图例子,以及控制绘图中的一些细节的方法。

  既然绘图要用 matplotlib 的包,并且我们也已经安装了,那么首先肯定是要引入这个包了: import matplotlib.pyplot as plt 

  当然也可以替换为引入 pylab(是 matplotlib 的一个子包,非常适合于进行交互式绘图,本文将以这个为例): import pylab as pl 

  接下来,就是对具体数据进行绘图了。比如我们要绘制一条 y=x^2 的曲线,可这样写代码:

x = range(10)  # 横轴的数据
y = [i*i for i in x]  # 纵轴的数据
pl.plot(x, y)  # 调用 pylab 的 plot 函数绘制曲线
pl.show()  # 显示绘制出的图

  执行之后就可以看到绘制出来的图了:

  

  可以看到,要显示一个图非常简单,只要有了两个 list 作为输入数据,先后调用 plot 和 show 函数就可以了。一定要记得只有调用了 show 之后才会显示出来!只有 plot 是不行的!

  在实际运用中,可能这样一条简单粗暴的线可能并不是我们想要的最好的结果,比如,想要在图形上显示原始数据点,很简单,只要在 plot 函数中加上一个参数即可: pl.plot(x, y, 'ob-') # 显示数据点,并用蓝色 (blue) 实现绘制该图形 

  这个参数用法比较灵活,可以从下面的值中组合选择:

颜色(color 简写为 c):
蓝色: 'b' (blue)
绿色: 'g' (green)
红色: 'r' (red)
蓝绿色 (墨绿色): 'c' (cyan)
红紫色 (洋红): 'm' (magenta)
黄色: 'y' (yellow)
黑色: 'k' (black)
白色: 'w' (white)

线型(linestyle 简写为 ls):
实线: '-'
虚线:
'--'
虚点线:
'-.'
点线:
':'
点:
'.'

点型(标记 marker):
像素: ','
圆形:
'o'
上三角:
'^'
下三角:
'v'
左三角:
'<'
右三角:
'>'
方形:
's'
加号:
'+'
叉形:
'x'
棱形:
'D'
细棱形:
'd'
三脚架朝下:
'1'(像 '丫')
三脚架朝上:
'2'
三脚架朝左:
'3'
三脚架朝右:
'4'
六角形:
'h'
旋转六角形:
'H'
五角形:
'p'
垂直线:
'|'
水平线:
'_'

  线是调好了,可是还想加上横纵坐标的说明呢?也很简单,在调用 show 函数之前添加如下代码:

pl.xlabel(u"我是横轴")
pl.ylabel(u"我是纵轴")

  效果如下:

  

  这里一定要记住,传递的字符串一定要是 Unicode 编码,如果是直接传入字符串,形式如 u'这里是要写的字符串' 即可。

  现在就直观多了吧,终于像一个正常的图了,不过,还想再在图里加个图例该咋办?也不难,继续给 plot 传参数:

pl.plot(x, y, 'ob-', label=u'y=x^2 曲线图')  # 加上 label 参数添加图例
pl.legend()  # 让图例生效

  这里也是一样,label 字符串参数务必加上 u'' 声明为 unicode 编码,否则图例将会添加失败。效果图如下:

  

  oh,看到图像上面光秃秃的,就好想给它加个标题: pl.title(u'图像标题') # 字符串也需要是 unicode 编码 

  有时候,我们的数据可能分布并没有这么集中,比如我们想要对项目中的某些数据进行绘图观察时发现,大量数据聚集在 0 附近,而少量很大的数据会导致图像显示效果很不好,比如:  

x = range(10)+[100]
y = [i*i for i in x]
pl.plot(x, y, 'ob-', label=u'y=x^2 曲线图')

  

  这时,我们想要限制需要显示的坐标范围:

pl.xlim(-1, 11)  # 限定横轴的范围
pl.ylim(-1, 110)  # 限定纵轴的范围

  再上效果图:

  


 

  好了,到这里 plot 的常用绘图用法就讲完了,另外,如果需要在一幅图中显示多条线,可以在 show 函数调用前继续调用 plot 函数,传入需要绘制的数据和图形显示要求。

  matplotlib 是个非常好用的库,不管是对于需要写论文画图,还是数据调研中看数据相关性,都是一个得力助手。写这篇文章的背景是我之前在项目中也使用这个做了一个特征与结果之间的相关性调研中使用到了绘图,就学习了一下,下面是对真实数据进行屏蔽改写之后的一个很像的示意图(感兴趣的可以到我github 中看源码,本文的完整代码及注释也可在本链接只中找到):

    

 


 

  本文简要介绍了下 python 绘图入门的一些用法,如有不对之处,欢迎大家指正。我也是不久前才开始真正使用 python,这个强大而方便的语言会让我们能更快地实现自己的想法,大家有比较好的 python 资料也欢迎留言,共同学习,谢谢!

  转载请注明出处:使用 matplotlib,pylab 进行 python 绘图(http://www.cnblogs.com/webary/p/5813855.html)