matplotlib绘图库探索(一)

1.初见matplotlib

感觉matplotlib和python其它库一样功能强大,编程复杂。经过一段时间的学习,更觉得此库参数设置十分随意。这样做的优点是避免了面向对像的冗长语法,熟练后效率会大大增加,必竟数学库只是临时工具。缺点是如果没有文档的帮助,几乎不知道如何设置参数。

2.一个例子

安装matplotlib的方法请自行百度。安装之后在python shell中依行输入以下代码:

import numpy as np
import pylab as pl
x = [1, 2, 3, 4, 5] #数据列表
pl.plot(x)
pl.show()

matplotlib绘图库探索(一)_第1张图片
生成的图片如下所示:
matplotlib绘图库探索(一)_第2张图片
看到简单的python代码生成的这个图像,相信很多初学者一脸茫然。

  1. 这是一条直线,但它的方程显然不是y=x。
  2. 为什么只定义了一个数据列表,却没有定义直线方程就能生成图片。

反过来可能思考可能正确的图像生成过程:

  1. 定义一个方程,比如直线方程:y=x。
  2. 定义一个数据列表为定义域,比如:x = [1, 2, 3, 4, 5]
  3. 程序可能根据方程和定义域求出值域,然后画出图片。

但是这种思维只能说是比较平庸的思考方式,让我们看看matplotlib的开发者是如何卓越思考的。

  1. matplotlib库是一个数学库,不仅能画方程图像,而且能画很多图像。
  2. pl.plot如果只有一个参数,那么它只根据数据列表画Y轴图像

如下图所示,数据列表:[1, 2, 3, 4, 5]所对应Y轴值落在“蓝色直线”上。matplotlib绘图库探索(一)_第3张图片
有没有更加直接的证据证明这一点呢?以下两段代码就证明了这一点:

import numpy as np
import pylab as pl
x = [1, 2, 3, 4, 5] #数据列表
pl.plot(x,'o')      #'o'代表点图上的蓝色圆点
pl.show()

生成图形如下所示:
matplotlib绘图库探索(一)_第4张图片

import numpy as np
import pylab as pl
x = [1, 2, 3, 4, 5, 1] #数据列表
pl.plot(x,'o')      #'o'代表点图上的蓝色圆点
pl.show()

生成图片如下所示:
matplotlib绘图库探索(一)_第5张图片

3结论

程序1生成的是一张“有一定斜率”直线的图片。这是因为matplotlib库pl.plot(x)方法默认把“数据列表”在Y轴对应的点连接起来。

你可能感兴趣的:(matplotlib)