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 库中最重要的函数,用于绘制二维数据。以下脚本绘制方程式 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() 函数显示。

以上代码应产生以下输出:

Matplotlib Demo

除了线性图,还可以通过向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

'_'

水平线标记

还定义了以下颜色缩写。

字符 颜色
'b' 蓝色
'g' 绿色
'r' 红色
'c' 青色
'm' 品红色
'y' 黄色
'k' 黑色
'w' 白色

要在上面的示例中显示表示点的圆圈而不是线,请在 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() 

以上代码应产生以下输出:

Color Abbreviation

正弦波图

以下脚本使用 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() 
Sine Wave

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

以上代码应产生以下输出:

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

此代码应产生以下输出:

Bar Graph
广告