NumPy - Matplotlib
Matplotlib 是 Python 的绘图库。 它与 NumPy 一起使用以提供一个环境,该环境是 MatLab 的有效开源替代品。 它还可以与 PyQt 和 wxPython 等图形工具包一起使用。
Matplotlib 模块首先由 John D. Hunter 编写。 自 2012 年以来,Michael Droettboom 是主要开发商。 目前,Matplotlib ver. 1.5.1 是可用的稳定版本。 该软件包以二进制分发版和 www.matplotlib.org 上的源代码形式提供。
通常,通过添加以下语句将包导入到Python脚本中 −
from matplotlib import pyplot as plt
这里的pyplot()是matplotlib库中最重要的函数,用于绘制二维数据。 以下脚本绘制了方程 y = 2x + 5
示例
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y) plt.show()
一个 ndarray 对象 x 是从 np.arange() 函数 创建的作为 x 轴 上的值。y 轴 上的相应值存储在另一个ndarray 对象 y 中。这些值是使用 matplotlib 包的 pyplot 子模块的 plot() 函数绘制的。
图形表示由show() 函数显示。
上面的代码应该产生以下输出 −
通过向 plot() 函数添加格式字符串,可以离散显示值,而不是线性图。 可以使用以下格式字符。
序号 | 字符 & 描述 |
---|---|
1 | '-' 实线样式 |
2 | '--' 虚线样式 |
3 | '-.' 点划线样式 |
4 | ':' 虚线样式 |
5 | '.' 点标记 |
6 | ',' 像素标记 |
7 | 'o' 圆形标记 |
8 | 'v' 三角形向下标记 |
9 | '^' Triangle_up 标记 |
10 | '<' Triangle_left 标记 |
11 | '>' Triangle_right 标记 |
12 | '1' Tri_down 标记 |
13 | '2' Tri_up 标记 |
14 | '3' Tri_left 标记 |
15 | '4' Tri_right 标记 |
16 | 's' 方形标记 |
17 | 'p' 五边形标记 |
18 | '*' 星号标记 |
19 | 'h' Hexagon1 标记 |
20 | 'H' Hexagon2 标记 |
21 | '+' Plus 标记 |
22 | 'x' X 标记 |
23 | 'D' 钻石标记 |
24 | '' Thin_diamond 标记 |
25 | '|' V线标记 |
26 | '_' H线标记 |
还定义了以下颜色缩写。
字符 | 颜色 |
---|---|
'b' | Blue |
'g' | Green |
'r' | Red |
'c' | Cyan |
'm' | Magenta |
'y' | Yellow |
'k' | Black |
'w' | White |
要显示代表点的圆圈,而不是上面示例中的线,请使用 "ob" 作为 plot() 函数中的格式字符串。
示例
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y,"ob") plt.show()
上面的代码应该产生以下输出 −
正弦波图
以下脚本使用 matplotlib 生成正弦波图。
示例
import numpy as np import matplotlib.pyplot as plt # 计算正弦曲线上点的 x 和 y 坐标 x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("sine wave form") # 使用 matplotlib 绘制点 plt.plot(x, y) plt.show()
subplot()
subplot() 函数允许您在同一张图中绘制不同的东西。 在以下脚本中,绘制了正弦 和余弦值。
示例
import numpy as np import matplotlib.pyplot as plt # 计算正弦和余弦曲线上点的 x 和 y 坐标 x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) # 设置一个高度为 2 宽度为 1 的子图网格, # 并将第一个这样的子图设置为 active。 plt.subplot(2, 1, 1) # Make the first plot plt.plot(x, y_sin) plt.title('Sine') # 将第二个子图设置为 active,并制作第二个图。 plt.subplot(2, 1, 2) plt.plot(x, y_cos) plt.title('Cosine') # Show the figure. plt.show()
上面的代码应该产生以下输出 −
bar()
pyplot 子模块 提供bar() 函数来生成条形图。 以下示例生成两组 x 和 y 数组的条形图。
示例
from matplotlib import pyplot as plt x = [5,8,10] y = [12,16,6] x2 = [6,9,11] y2 = [6,15,7] plt.bar(x, y, align = 'center') plt.bar(x2, y2, color = 'g', align = 'center') plt.title('Bar graph') plt.ylabel('Y axis') plt.xlabel('X axis') plt.show()
此代码应产生以下输出 −