在 Matplotlib 中,marker 用于标记数据点,可通过多种参数自定义样式。以下是详细说明及示例:

1. 基础设置

  • 常用 marker 类型

    '.' :',' : 像素       'o' : 圆圈        'v' : 下三角形
    '^' : 上三角形   '<' : 左三角形   '>' : 右三角形     's' : 正方形
    'p' : 五边形     '*' : 星形       'h' : 六边形1      'H' : 六边形2
    '+' : 加号       'x' : 叉号       'D' : 菱形        'd' : 小菱形
    '|' : 竖线       '_' : 横线
    
  • 设置方式

    plt.plot(x, y, marker='o')          # 圆圈
    plt.scatter(x, y, marker='s')       # 正方形
    

2. 高级自定义

  • 大小与颜色

    plt.plot(x, y, 
             marker='o',                # 圆形标记
             markersize=10,             # 大小(缩写 ms)
             markerfacecolor='red',     # 填充颜色(缩写 mfc)
             markeredgecolor='blue',    # 边缘颜色(缩写 mec)
             markeredgewidth=2)         # 边缘宽度(缩写 mew)
    
  • 填充样式

    plt.plot(x, y, marker='o', fillstyle='none')      # 空心圆
    # 选项:'full'(默认), 'left', 'right', 'top', 'bottom'
    

3. 组合示例

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 5)
y = np.sin(x)

plt.plot(x, y, 
         marker='D',                  # 菱形标记
         markersize=12,
         markerfacecolor='yellow',    # 填充黄色
         markeredgecolor='black',     # 边缘黑色
         markeredgewidth=1.5,
         linestyle='--',              # 虚线连接
         color='green')

plt.title('Custom Marker Demo')
plt.show()

4. 特殊标记

  • 自定义路径(高级):

    from matplotlib.path import Path
    star_verts = [(0,1), (0.5,0.2), (1,1), (0.2,0.5), (0.8,0.5), (0,1)]
    custom_marker = Path(star_verts)
    plt.scatter(x, y, marker=custom_marker, s=500)
    
  • TeX 符号

    plt.plot(x, y, marker=r'$\alpha$', markersize=15)  # 用α符号标记
    

5. 散点图专用

plt.scatter() 中:

plt.scatter(x, y, 
           s=100,                   # 标记大小(面积)
           c='purple',              # 颜色
           edgecolors='black',       # 边缘色
           linewidths=1.5,           # 边缘宽度
           marker='^')               # 三角形

6. 常见问题解决

  • 标记不显示:检查 marker 参数是否拼写错误(如 marker='0' 应为 marker='o')。
  • 大小异常:在 scatter()s 是面积值,需远大于 plot()markersize(如 s=100)。
  • 空心标记:设置 fillstyle='none' 并指定 markeredgecolor

通过组合这些参数,可创建高度定制化的数据标记样式!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐