Pyplot简明教程

matplotlib.pyplot 提供一系列类似Matlab的命令式函数。每个函数可以对图形对象做一些改动,比如:新建一个图形对象、在图形中开辟绘制区、在绘制区画一些曲线、为曲线打上标签等等。在matplotlib.pyplot中,大部分状态是跨函数调用共享的。因此,它会跟踪像当前图形对象和绘制区,绘制函数直接作用于当前绘制对象。

先画一条线

举一个最简单的例子,画一条直线练练手吧,代码如下:

1
2
3
4
5
import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4])
plt.ylabel('some number')
plt.show()

第一行是通过给定四个点画一条曲线(直线),四个点只给出纵坐标,横坐标是隐含的[0, 1, 2, 3];第二行设置Y轴标签;最后一行将图形展示出来。

line.png

plot函数详解

plot() 是一个多用途的命令函数,可以给定任意多的参数。例如,如果不想用默认的X轴坐标,可以用以下命令:

1
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])

其中,横坐标是[1, 2, 3, 4],纵坐标是[1, 4, 9, 16]。

此外,对于每一组坐标,可以提供第三个可选参数——格式字符串,用于指定颜色以及线条类型。格式字符串与Matlab类似,包括一个颜色串以及一个线条样式串。默认的格式字符串是’b-’,代表蓝色实线。但是,也可以指定画成红色小圆圈,例如:

1
2
3
4
5
import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()

points.png

例子中,axis()函数接收一个列表[xmin, xmax, ymin, ymax]作为参数,用来指定坐标轴的范围。

plot()函数支持的格式化字符串列表如下:

线条样式

‘-’实线
‘–’(短划)虚线
‘-.’(短划点间隔)虚线
‘:’(点)虚线
‘.’
‘,’像素点(小)
‘o’圆圈
‘v’(向下)三角形
‘^’(向上)三角形
‘<’(向左)三角形
‘>’(向右)三角形
‘1’
‘2’
‘3’
‘4’
’s'square - 正方形
‘p’pentagon - 正五边形
‘*’五角星
‘h’hexagon - 正六边形
‘H’hexagon - 正六边形
‘+’加号
‘x’叉号
‘D’diamond - 菱形
’d'diamond - 菱形(扁)
''垂直竖线
‘_’水平横线

颜色

‘b’blue - 蓝色
‘g’green - 绿色
‘r’red - 红色
‘c’cyan - 蓝绿色
’m'magenta - 品红色
‘y’yellow - 黄色
‘k’black - 黑色
‘w’white - 白色

numpy数值计算

如果matplotlib只能使用列表,那么数值计算方面的能力将大打折扣。一般情况下,做数值计算都是使用numpy数组,在matplotlib中也可以使用。事实上,在matplotlib内部,所有序列都会先转化成numpy数组。下面这个例子,演示使用numpy数组,用一条命令画几条样式不同的曲线。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np
import matplotlib.pyplot as plt

# 以200毫秒为间隔均匀取样
t = np.arange(0., 5., 0.2)

# 一次方曲线:红(短划)虚线
# 二次方曲线:蓝方格
# 三次方曲线:绿三角
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

numeric.png

看到numpy数组的威力了吧!

作者:fasionchan

链接:https://www.jianshu.com/p/4579f43431b7

Licensed under CC BY-NC-SA 4.0