runoops.com

Matplotlib 绘图标记

绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。

以下实例定义了实心圆标记:

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = 'o')
plt.show()

显示结果如下:

marker 可以定义的符号如下:

标记符号描述
"."m00
","m01像素点
"o"m02实心圆
"v"m03下三角
"^"m04上三角
"<"m05左三角
">"m06右三角
"1"m07下三叉
"2"m08上三叉
"3"m09左三叉
"4"m10右三叉
"8"m11八角形
"s"m12正方形
"p"m13五边形
"P"m23加号(填充)
"*"m14星号
"h"m15六边形 1
"H"m16六边形 2
"+"m17加号
"x"m18乘号 x
"X"m24乘号 x (填充)
"D"m19菱形
"d"m20瘦菱形
"|"m21竖线
"_"m22横线
0 (TICKLEFT)m25左横线
1 (TICKRIGHT)m26右横线
2 (TICKUP)m27上竖线
3 (TICKDOWN)m28下竖线
4 (CARETLEFT)m29左箭头
5 (CARETRIGHT)m30右箭头
6 (CARETUP)m31上箭头
7 (CARETDOWN)m32下箭头
8 (CARETLEFTBASE)m33左箭头 (中间点为基准)
9 (CARETRIGHTBASE)m34右箭头 (中间点为基准)
10 (CARETUPBASE)m35上箭头 (中间点为基准)
11 (CARETDOWNBASE)m36下箭头 (中间点为基准)
"None", " " or "" 没有任何标记
'$...$'m37渲染指定的字符。例如 "$f$" 以字母 f 为标记。

以下实例定义了 * 标记:

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = '*')
plt.show()

显示结果如下:

以下实例定义了下箭头:

实例

import matplotlib.pyplot as plt
import matplotlib.markers

plt.plot([1, 2, 3], marker=matplotlib.markers.CARETDOWNBASE)
plt.show()

显示结果如下:

fmt 参数

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

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

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

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, 'o:r')
plt.show()

显示结果如下:

线类型:

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

颜色类型:

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

标记大小与颜色

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

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

设置标记大小:

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = 'o', ms = 20)
plt.show()

显示结果如下:

设置标记外边框颜色:

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = 'o', ms = 20, mec = 'r')
plt.show()

显示结果如下:

设置标记内部颜色:

实例

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = 'o', ms = 20, mfc = 'r')
plt.show()

显示结果如下:

自定义标记内部与边框的颜色:

实例

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([6, 2, 13, 10])
plt.plot(ypoints, marker = 'o', ms = 20, mec = '#4CAF50', mfc = '#4CAF50')
plt.show()

显示结果如下: