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() 函数显示。

上面的代码应该产生以下输出 −

Matplotlib 演示

通过向 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()

上面的代码应该产生以下输出 −

sub_plot

bar()

pyplot 子模块 提供bar() 函数来生成条形图。 以下示例生成两组 xy 数组的条形图。

示例

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()

此代码应产生以下输出 −

条形图