-->

Published on January 26, 2025 by DengKai

绘图 matplotlib

阅读需要 9 分钟

FMT标记及hatch填充图案字符

线图fmt参数

matplotlib 中,fmt 参数用于指定 线条样式标记样式,例如在 plot() 函数中定义点和线的外观。它由以下三部分组成:

  1. 颜色 (color)
  2. 标记 (marker)
  3. 线型 (linestyle)

可以组合这些符号来定义 fmt,但需要注意的是,plt中,fmt是一个位置参数,不能用关键字参数的方式赋值。

以下是各部分的详细列表:

1. 颜色 (Color)

符号颜色
'b'蓝色 (blue)
'g'绿色 (green)
'r'红色 (red)
'c'青色 (cyan)
'm'品红 (magenta)
'y'黄色 (yellow)
'k'黑色 (black)
'w'白色 (white)

你还可以使用十六进制代码(如 '#FF5733')或灰度 ('0.5') 表示颜色。


2. 标记 (Marker)

符号标记
'.'点标记 (point)
','像素标记 (pixel)
'o'圆形标记 (circle)
'v'倒三角形 (triangle down)
'^'正三角形 (triangle up)
'<'左三角形 (triangle left)
'>'右三角形 (triangle right)
'1'下箭头 (tri_down)
'2'上箭头 (tri_up)
'3'左箭头 (tri_left)
'4'右箭头 (tri_right)
's'方块 (square)
'p'五边形 (pentagon)
'*'星形 (star)
'h'六边形1 (hexagon1)
'H'六边形2 (hexagon2)
'+'加号 (plus)
'x'x 标记 (x)
'D'菱形 (diamond)
'd'瘦菱形 (thin_diamond)
'_'水平线 (hline)

3. 线型 (Linestyle)

符号线型
'-'实线 (solid)
'--'虚线 (dashed)
'-.'点划线 (dash-dot)
':'点线 (dotted)
''无线型

示例:fmt 参数组合

  • 'ro-': 红色圆形标记,实线。
  • 'g--': 绿色虚线,无标记。
  • 'b*:': 蓝色星标记,点线。

完整代码示例

python复制编辑import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [10, 20, 25, 30]

# 各种 fmt 组合示例
plt.plot(x, y, 'ro-', label='红色圆形+实线')
plt.plot(x, [15, 18, 22, 28], 'g--', label='绿色虚线')
plt.plot(x, [5, 10, 15, 20], 'b*:', label='蓝色星形+点线')

plt.legend()
plt.show()

条形图填充图案

在 Matplotlib 的条形图中,可以通过设置 hatch 参数为条形填充图案。hatch 支持多种图案,包括斜线、横线、点等。以下是具体说明和可选值:


1. 可选填充图案(hatch 的值)

图案符号描述
'/'斜线向右(正斜线)
'\\'斜线向左(反斜线)
' | ' 
'-'水平线
'+'加号交叉线
'x'x 交叉线
'.'点图案
'*'星号图案
'o'圆形图案
'O'大圆形图案
'0'小圆点图案

多个字符可以组合使用,例如:'/-' 会生成斜线和水平线的组合。


2. 示例代码

以下代码展示了如何在条形图中设置填充图案:

python复制编辑import matplotlib.pyplot as plt
import numpy as np

# 数据
categories = ['A', 'B', 'C']
values = [10, 15, 20]

# 绘制条形图,设置填充图案
plt.bar(categories, values, color='skyblue', hatch='//', label='正斜线填充')

# 添加图例
plt.legend()

# 显示图像
plt.show()

hatch 参数接受多个字符。如果想增加填充图案的密度,可以通过重复字符实现。例如:

  • '/' → 稀疏斜线
  • '//' → 稍密斜线
  • '///' → 更密斜线