Matplotlib 绘图与标记

在本章中,我们将学习如何使用 Matplotlib 创建一个简单的绘图。主要介绍 plot 函数。并且介绍该函数中使用的标记。

我们现在将使用 Matplotlib 中绘制一个曲线图,用来表示角度与正弦值的关系。首先,导入 Matplotlib 包中的 Pyplot 模块,按照惯例使用别名 plt。

import matplotlib.pyplot as plt

接下来我们需要一组用来绘制图的数据,该数据是一组角度和一组角度对应的正弦值。在使用 np 别名导入的 NumPy 库中定义了各种数组函数。

import numpy as np

我们现在使用 NumPy 库中的 arange() 函数获取角度在 0 到 2π 之间的 ndarray 对象。

x = np.arange(0, math.pi*2, 0.05)

ndarray 对象用作坐标轴 x 轴上的值。然后我们来生成这些角度对应的各自的正弦值。这些正弦值作为坐标轴上的 y 轴上的数据。

y = np.sin(x)

接下来我们开启一个图形窗口,给窗口命名

plt.figure("迹忆客 - jiyik.com")

然后使用 plot() 函数绘制来自两个数组对应的曲线图。

plt.plot(x,y)

我们也可以给曲线图设置标题以及 x 和 y 轴的标签。

plt.xlabel("角度")
plt.ylabel("正弦值")
plt.title('正弦曲线')

最后使用show()显示图形窗口

plt.show()

上面分步给出了绘制图的一个流程。下面我们看一下完整的代码

import matplotlib.pyplot as plt
import numpy as np
import math
import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)

plt.figure("迹忆客 - jiyik.com")
plt.plot(x,y)
plt.xlabel("角度")
plt.ylabel("正弦值")
plt.title('正弦曲线')
plt.show()

绘制图形如下

matplotlib 正弦曲线图

绘图标记

上面我们了解了基本的绘图流程,下面我们了解一些绘图中的标记。绘图标记主要通过 plot() 函数中的marker参数来指定

首先我们使用几个点绘制一个连线图,并且显示每一个点

import matplotlib.pyplot as plt
import numpy as np
import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

ypoints = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

print(ypoints)

plt.figure("迹忆客 - jiyik.com")
plt.xlabel("x 轴")
plt.ylabel("y 轴")
plt.title('默认标记图')
plt.plot(ypoints, marker='o')
plt.show()

绘制图形如下

matplotlib 绘制点线图

上例中我们使用的 marker='o' 绘制的点,o 表示的是一个实心的圆。marker可定义的符号还有很多,例如 marker=">" 表示一个 右三角

plt.plot(ypoints, marker='>')

matplotlib 标记右三角

更多符号标记及其对应的形状如下表所示

标记 符号
"."
"," 像素点
"o" 实心圆
"v" 下三角
"^" 上三角
"<" 左三角
">" 右三角
"1" 下三叉
"2" 上三叉
"3" 左三叉
"4" 右三叉
"8" 八角形
"s" 正方形
"p" 五边形
"P" 加号(填充)
"*" 星号
"h" 六边形 1
"H" 六边形 2
"+" 加号
"x" 乘号 x
"X" 乘号 x (填充)
"D" 菱形
"d" 瘦菱形
" "
"_" 横线
0 (TICKLEFT) 左横线
1 (TICKRIGHT) 右横线
2 (TICKUP) 上竖线
3 (TICKDOWN) 下竖线
4 (CARETLEFT) 左箭头
5 (CARETRIGHT) 右箭头
6 (CARETUP) 上箭头
7 (CARETDOWN) 下箭头
8 (CARETLEFTBASE) 左箭头 (中间点为基准)
9 (CARETRIGHTBASE) 右箭头 (中间点为基准)
10 (CARETUPBASE) 上箭头 (中间点为基准)
11 (CARETDOWNBASE) 下箭头 (中间点为基准)
"None", " " or "" 没有任何标记
'$...$' 渲染指定的字符。例如 "$f$" 以字母 f 为标记。

除了可以定义每一个点的样式之外,还可以对线的样式进行定义。其中线的类型及对应的标记如下

线类型标记 描述
'-' 实线
':' 虚线
'--' 破折线
'-.' 点划线

图形的颜色标记如下

颜色标记 描述
'r' 红色
'g' 绿色
'b' 蓝色
'c' 青色
'm' 品红
'y' 黄色
'k' 黑色
'w' 白色

fmt 参数

fmt 参数定义了基本格式,如标记、线条样式和颜色。

fmt = '[marker][line][color]'

例如 o:r,o 表示实心圆标记,: 表示虚线,r 表示颜色为红色。

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([6, 2, 13, 10])

plt.figure("迹忆客 - jiyik.com")
plt.plot(ypoints, 'o:r')
plt.show()

图形如下

matplotlib 线条样式

标记大小与颜色

我们可以自定义标记的大小与颜色,使用的参数分别是:

  • markersize,简写为 ms:定义标记的大小。
  • markerfacecolor,简写为 mfc:定义标记内部的颜色。
  • markeredgecolor,简写为 mec:定义标记边框的颜色。

设置标记内部颜色:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([6, 2, 13, 10])

plt.figure("迹忆客 - jiyik.com")
plt.plot(ypoints, marker = 'o', ms = 20, mfc = 'r')
plt.show()

图形如下

matplotlib 设置标记内部颜色

查看笔记

扫码一下
查看教程更方便