最近刚开始学习Python语言,之前主做Android开发,经历过一年考研,发现Android开发技术已经落后很多,并且研究生阶段主做计算机视觉&图像处理方向,另外Python已经成为使用量最多的语言,为跟随导师及互联网大方向,现转Python。
刚接触到Matplotlib库绘图,有一个关于点坐标的问题想了好一会才明白,在这记录下来。
先上代码和效果:
from pylab import *
x = [100,200,400,400] #x坐标点列表
y = [200,400,200,500] #y坐标点列表
plot(x,y,'r*') #绘制点
plot(x,y) #绘制线
plot(x[:2],y[:2]) #绘制线
show() #显示图像
效果:
再说一下代码:
- 首先第一行是引入库,在java中直接写import,而在Python中要先写from。
- 然后定义xy坐标的list,在这里我第一眼根本没明白这个坐标是怎么对应的,比如x = [100,200,400,400],难道这里代表两个点(100,200)和(400,400)吗??看到效果图之后可以看到显然不是。
那么这里究竟是怎么描述点的坐标的呢,这里我们定义了两个list,一个x,一个y,他们形成的点是这样的:
这样就和我们的效果图对应上了 - 加下来是主要绘制方法plot,plot()方法接受三个参数,前两个是坐标list,用来确定点位置,最重要的是第三个参数,用来确定究竟怎么画,如果不加此参数,默认绘制蓝色线。
对于第三个参数可以参考下表:
1、控制颜色:
参数 | 含义 |
‘b’ | 蓝色 |
‘g’ | 绿色 |
‘r’ | 红色 |
‘c’ | 青色 |
‘m’ | 品红 |
‘y’ | 黄色 |
‘k’ | 黑色 |
‘w’ | 白色 |
2、控制线形
参数 | 含义 |
‘-’ | 实线 |
‘–’ | 虚线 |
‘:’ | 点线 |
3、控制绘制点图形(如果加上这个参数就会绘制点,不加是绘制线)
参数 | 含义 |
‘.’ | 点 |
‘o’ | 圈 |
‘s’ | 正方形 |
‘*’ | 星形 |
‘+’ | 加号 |
‘x’ | 叉号 |
- 下面绘制线的时候都控制了开始点和结束点,如果不明白[:2]的含义可以再学习一下python的基础知识
- 最后是显示我们绘制的图像,在每个脚本里面只能使用一次show,并且一般在最后调用。
另外,如果我们需要加载一个图片作为背景,坐标轴会发生变化。
先上代码和效果:
from PIL import Image
from pylab import *
im = array(Image.open('./2.jpg'))
imshow(im)
x = [100,200,400,400]
y = [200,400,200,500]
plot(x,y,'r*')
plot(x,y)
plot(x[:2],y[:2])
show()
效果:
通过和上面的效果图对比,我们可以看到y轴发生了变化