NumPy 与Matplotlib结合
Matplotlib是Python的绘图库,它与NumPy一起使用,为MatLab提供了一个有效的开源替代方案。它也可以与PyQt和wxPython等图形工具包一起使用。
Matplotlib模块最初是由John D. Hunter编写的。自2012年以来,Michael Droettboom是主要开发者。目前,Matplotlib的稳定版本是1.5.1。该软件包可在二进制分发和源代码形式上获得, www.matplotlib.org 。
惯例上,通过添加以下语句将该软件包导入Python脚本中−
from matplotlib import pyplot as plt
这里 pyplot() 是matplotlib库中最重要的函数,用于绘制2D数据。下面的脚本绘制了方程 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()
从 np.arange() 函数 创建了一个 ndarray 对象 x,并将其作为 x 轴 上的值存储。
相应的 y 轴 上的值存储在另一个 ndarray 对象 y 中。
这些值使用 matplotlib 包中 pyplot 子模块的 plot() 函数 进行绘制。
show() 函数 显示图形表示。
上述代码应该产生如下输出 −
相对于线性图,可以通过在 plot() 函数中添加格式化字符串来离散显示数值。可以使用以下格式化字符。
序号 | 字符和描述 |
---|---|
1 | ‘-‘ 实线样式 |
2 | ‘–‘ 虚线样式 |
3 | ‘-.’ 点划线样式 |
4 | ‘:’ 点线样式 |
5 | ‘.’ 点标记 |
6 | ‘,’ 像素标记 |
7 | ‘o’ 圆形标记 |
8 | ‘v’ 向下三角标记 |
9 | ‘^’ 向上三角标记 |
10 | **’ <‘ ** 三角形左标记 |
11 | **’ >’ ** 三角形右标记 |
12 | ‘1’ 三角形向下标记 |
13 | ‘2’ 三角形向上标记 |
14 | ‘3’ 三角形向左标记 |
15 | ‘4’ 三角形向右标记 |
16 | ‘s’ 方形标记 |
17 | ‘p’ 五边形标记 |
18 | ‘*’ 星形标记 |
19 | ‘h’ 六边形1标记 |
20 | ‘H’ 六边形2标记 |
21 | ‘+’ 加号标记 |
22 | ‘x’ X标记 |
23 | ‘D’ 菱形标记 |
24 | ‘d’ 细菱形标记 |
25 | | 竖线标记 |
26 | ‘_’ 横线标记 |
以下颜色缩写也被定义。
Character | Color |
---|---|
‘b’ | Blue |
‘g’ | Green |
‘r’ | Red |
‘c’ | Cyan |
‘m’ | Magenta |
‘y’ | Yellow |
‘k’ | Black |
‘w’ | White |
要显示表示点的圆圈,而不是上面示例中的线,请在plot()函数中使用格式字符串 “ob” 。
示例
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
# Compute the x and y coordinates for points on a sine curve
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
plt.title("sine wave form")
# Plot the points using matplotlib
plt.plot(x, y)
plt.show()
subplot()
subplot()函数允许您在同一图中绘制不同的内容。在下面的脚本中,绘制了正弦和余弦值。
示例
import numpy as np
import matplotlib.pyplot as plt
# Compute the x and y coordinates for points on sine and cosine curves
x = np.arange(0, 3 * np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# Set up a subplot grid that has height 2 and width 1,
# and set the first such subplot as active.
plt.subplot(2, 1, 1)
# Make the first plot
plt.plot(x, y_sin)
plt.title('Sine')
# Set the second subplot as active, and make the second plot.
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()
以下代码应该生成以下输出-