matplotlib绘图库探索(一)
程序员文章站
2024-03-24 13:51:34
...
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()
生成的图片如下所示:
看到简单的python代码生成的这个图像,相信很多初学者一脸茫然。
- 这是一条直线,但它的方程显然不是y=x。
- 为什么只定义了一个数据列表,却没有定义直线方程就能生成图片。
反过来可能思考可能正确的图像生成过程:
- 定义一个方程,比如直线方程:y=x。
- 定义一个数据列表为定义域,比如:x = [1, 2, 3, 4, 5]
- 程序可能根据方程和定义域求出值域,然后画出图片。
但是这种思维只能说是比较平庸的思考方式,让我们看看matplotlib的开发者是如何卓越思考的。
- matplotlib库是一个数学库,不仅能画方程图像,而且能画很多图像。
- pl.plot如果只有一个参数,那么它只根据数据列表画Y轴图像。
如下图所示,数据列表:[1, 2, 3, 4, 5]所对应Y轴值落在“蓝色直线”上。
有没有更加直接的证据证明这一点呢?以下两段代码就证明了这一点:
import numpy as np
import pylab as pl
x = [1, 2, 3, 4, 5] #数据列表
pl.plot(x,'o') #'o'代表点图上的蓝色圆点
pl.show()
生成图形如下所示:
import numpy as np
import pylab as pl
x = [1, 2, 3, 4, 5, 1] #数据列表
pl.plot(x,'o') #'o'代表点图上的蓝色圆点
pl.show()
生成图片如下所示:
3结论
程序1生成的是一张“有一定斜率”直线的图片。这是因为matplotlib库pl.plot(x)方法默认把“数据列表”在Y轴对应的点连接起来。
上一篇: 初识Runtime之KVO实现原理
下一篇: centos7创建docker容器