当前位置:首页>python>一起学Python第105天:Matplotlib 绘图标记

一起学Python第105天:Matplotlib 绘图标记

  • 2026-09-10 05:33:43
一起学Python第105天:Matplotlib 绘图标记
欢迎来到第105天!
今天我们在昨天的基础上,深入学习 Matplotlib 的绘图标记(Marker) —— 也就是数据点上那些小符号。标记虽小,却是让图表更清晰、更专业的关键细节。

一、什么是绘图标记?

标记(Marker)就是数据点上的符号,用来标识每个数据点的位置。比如折线图上的圆点、散点图上的星星等。

基础用法

import matplotlib.pyplot as pltimport numpy as npypoints = np.array([1, 3, 4, 5, 8, 9, 6, 1, 3, 4, 5, 2, 4])# 使用实心圆标记plt.plot(ypoints, marker='o')plt.show()
效果:折线的每个数据点位置都会显示一个实心圆点。

二、标记符号大全

标记
符号
描述
.
点
小圆点
,
像素点
最小的点
o
实心圆
最常用
v
下三角
向下
^
上三角
向上
<
左三角
向左
>
右三角
向右
1
下三叉
三叉朝下
2
上三叉
三叉朝上
3
左三叉
三叉朝左
4
右三叉
三叉朝右
8
八角形
八边形
s
正方形
方形
p
五边形
五边形
P
加号(填充)
实心加号
*
星号
五角星
h
六边形 1
横躺六边形
H
六边形 2
正六边形
+
加号
空心加号
x
乘号
空心叉
X
乘号(填充)
实心叉
D
菱形
大菱形
d
瘦菱形
小菱形
|
竖线
竖线
_
横线
横线
None
 / ""
无标记
不显示标记

特殊标记(使用 matplotlib.markers 常量)

import matplotlib.markers# 使用箭头标记plt.plot([1, 2, 3], marker=matplotlib.markers.CARETDOWNBASE)
常量
描述
CARETLEFT
左箭头
CARETRIGHT
右箭头
CARETUP
上箭头
CARETDOWN
下箭头
CARETLEFTBASE
左箭头(以中间点为基准)
CARETRIGHTBASE
右箭头(以中间点为基准)
CARETUPBASE
上箭头(以中间点为基准)
CARETDOWNBASE
下箭头(以中间点为基准

自定义字符标记

import matplotlib.markers# 用字母 f 作为标记plt.plot([1, 2, 3, 4], marker='$f$')

三、fmt 参数:一行代码搞定样式

fmt 是格式字符串,格式为:[标记][线条样式][颜色]
ypoints = np.array([6, 2, 13, 10])# o: 实心圆标记,: 虚线,r: 红色plt.plot(ypoints, 'o:r')plt.show()

线条样式

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

颜色标记

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

四、标记大小与颜色

标记大小(ms / markersize)

ypoints = np.array([6, 2, 13, 10])# 标记大小设为 20plt.plot(ypoints, marker='o', ms=20)plt.show()

标记边框颜色(mec / markeredgecolor)

# 红色边框plt.plot(ypoints, marker='o', ms=20, mec='r')plt.show()

标记填充颜色(mfc / markerfacecolor)

# 黄色填充,红色边框plt.plot(ypoints, marker='o', ms=20, mec='r', mfc='y')plt.show()

五、综合实战示例

示例 1:不同标记对比

import matplotlib.pyplot as pltimport numpy as npx = np.arange(5)y = [10, 25, 15, 30, 20]markers = ['o', 's', '^', 'D', '*']colors = ['red', 'blue', 'green', 'orange', 'purple']labels = ['圆形', '方形', '三角', '菱形', '星号']plt.figure(figsize=(10, 6))for i, (m, c, l) in enumerate(zip(markers, colors, labels)):    plt.plot(x, [v + i*3 for v in y], marker=m, color=c,              ms=12, label=l, linewidth=2)plt.title('不同标记样式对比', fontsize=16)plt.xlabel('X 轴')plt.ylabel('Y 轴')plt.legend()plt.grid(True, alpha=0.3)plt.show()

示例 2:带标记的折线图(美化版)

import matplotlib.pyplot as pltimport numpy as np# 设置中文字体plt.rcParams['font.sans-serif'] = [    'Microsoft YaHei',     'SimHei',     'PingFang SC',     'Noto Sans CJK SC',     'WenQuanYi Zen Hei']plt.rcParams['axes.unicode_minus'] = Falsemonths = ['1月', '2月', '3月', '4月', '5月', '6月']sales = [120, 135, 148, 162, 155, 178]plt.figure(figsize=(10, 6))plt.plot(    months,     sales,     marker='o',     ms=12,     mec='red',     mfc='lightblue',    color='navy',    linewidth=2.5,    label='销售额')for i, v in enumerate(sales):    plt.text(i, v + 5, f'{v}万', ha='center', fontsize=10, color='darkred')plt.title('2026年上半年销售额趋势', fontsize=16, fontweight='bold')plt.xlabel('月份', fontsize=12)plt.ylabel('销售额(万元)', fontsize=12)plt.legend()plt.grid(True, alpha=0.3, linestyle='--')plt.ylim(100, 200)plt.show()

示例 3:只显示标记,不画线

x = np.random.rand(20)y = np.random.rand(20)plt.figure(figsize=(8, 8))plt.plot(x, y, 'ro', ms=10)  # 'ro' = 红色实心圆,无线条plt.title('散点图(使用 plot + marker)')plt.show()

六、常用参数

参数
简写
作用
marker
—
标记形状
markersizems
标记大小
markerfacecolormfc
标记填充颜色
markeredgecolormec
标记边框颜色
markeredgewidthmew
标记边框宽度
linestylels
线条样式
linewidthlw
线条宽度
colorc
线条颜色

总结

今天我们学习了 Matplotlib 的绘图标记:

  • ✅ 标记符号:30+ 种内置标记,包括几何图形、箭头、自定义字符

  • ✅ fmt 参数:[标记][线条][颜色] 一行搞定样式

  • ✅ 标记美化:大小(ms)、边框色(mec)、填充色(mfc)

  • ✅ 实战技巧:标记+数值标签、只显示标记不画线

关键记忆点:marker 控制形状,ms 控制大小,mec 控制边框,mfc 控制填充。

最新文章

随机文章