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()
ndarray
对象x
由np.arange()
函数创建为x
轴上的值。y
轴上的对应值存储在另一个数组对象y
中。 这些值使用matplotlib
软件包的pyplot
子模块的plot()
函数绘制。
图形由show()
函数展示。
上面的代码应该产生以下输出:
作为线性图的替代,可以通过向plot()
函数添加格式字符串来显示离散值。 可以使用以下格式化字符。
字符 | 描述 |
---|---|
'-' | 实线样式 |
'--' | 短横线样式 |
'-.' | 点划线样式 |
':' | 虚线样式 |
'.' | 点标记 |
',' | 像素标记 |
'o' | 圆标记 |
'v' | 倒三角标记 |
'^' | 正三角标记 |
&#39;<&#39; | 左三角标记 |
&#39;>&#39; | 右三角标记 |
&#39;1&#39; | 下箭头标记 |
&#39;2&#39; | 上箭头标记 |
&#39;3&#39; | 左箭头标记 |
&#39;4&#39; | 右箭头标记 |
&#39;s&#39; | 正方形标记 |
&#39;p&#39; | 五边形标记 |
&#39;*&#39; | 星形标记 |
&#39;h&#39; | 六边形标记 1 |
&#39;H&#39; | 六边形标记 2 |
&#39;&#43;&#39; | 加号标记 |
&#39;x&#39; | X 标记 |
&#39;D&#39; | 菱形标记 |
&#39;d&#39; | 窄菱形标记 |
&#39;&#124;&#39; | 竖直线标记 |
&#39;_&#39; | 水平线标记 |
还定义了以下颜色缩写。
字符 | 颜色 |
---|---|
&#39;b&#39; | 蓝色 |
&#39;g&#39; | 绿色 |
&#39;r&#39; | 红色 |
&#39;c&#39; | 青色 |
&#39;m&#39; | 品红色 |
&#39;y&#39; | 黄色 |
&#39;k&#39; | 黑色 |
&#39;w&#39; | 白色 |
要显示圆来代表点&#xff0c;而不是上面示例中的线&#xff0c;请使用ob
作为plot()
函数中的格式字符串。
示例
import numpy as np
from matplotlib import pyplot as plt x &#61; np.arange(1,11) y &#61; 2 * x &#43; 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y,"ob") plt.show()
上面的代码应该产生以下输出&#xff1a;
绘制正弦波
以下脚本使用 matplotlib 生成正弦波图。
示例
import numpy as np
import matplotlib.pyplot as plt # 计算正弦曲线上点的 x 和 y 坐标 x &#61; np.arange(0, 3 * np.pi, 0.1) y &#61; np.sin(x) plt.title("sine wave form") # 使用 matplotlib 来绘制点 plt.plot(x, y) plt.show()
subplot()
subplot()
函数允许你在同一图中绘制不同的东西。 在下面的脚本中&#xff0c;绘制正弦和余弦值。
示例
import numpy as np
import matplotlib.pyplot as plt # 计算正弦和余弦曲线上的点的 x 和 y 坐标 x &#61; np.arange(0, 3 * np.pi, 0.1) y_sin &#61; np.sin(x) y_cos &#61; np.cos(x) # 建立 subplot 网格&#xff0c;高为 2&#xff0c;宽为 1 # 激活第一个 subplot plt.subplot(2, 1, 1) # 绘制第一个图像 plt.plot(x, y_sin) plt.title(&#39;Sine&#39;) # 将第二个 subplot 激活&#xff0c;并绘制第二个图像 plt.subplot(2, 1, 2) plt.plot(x, y_cos) plt.title(&#39;Cosine&#39;) # 展示图像 plt.show()
上面的代码应该产生以下输出&#xff1a;
bar()
pyplot
子模块提供bar()
函数来生成条形图。 以下示例生成两组x
和y
数组的条形图。
示例
from matplotlib import pyplot as plt
x &#61; [5,8,10] y &#61; [12,16,6] x2 &#61; [6,9,11] y2 &#61; [6,15,7] plt.bar(x, y, align &#61; &#39;center&#39;) plt.bar(x2, y2, color &#61; &#39;g&#39;, align &#61; &#39;center&#39;) plt.title(&#39;Bar graph&#39;) plt.ylabel(&#39;Y axis&#39;) plt.xlabel(&#39;X axis&#39;) plt.show()