You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib的figtext中插入标记符号?

在Matplotlib的figtext中插入标记符号的解决方法

方法1:使用对应Unicode符号直接插入文本

Matplotlib的多数常用标记都有匹配的Unicode字符,直接在figtext的字符串里使用这些字符就能显示标记样式,简单高效。

常用标记的Unicode对应示例:

  • 点标记(.):·(U+00B7)
  • 圆圈标记(o):○(U+25CB)
  • 方块标记(s):□(U+25A1)
  • 上三角标记(^):△(U+25B3)
  • 叉号标记(x):✕(U+2715)

示例代码:

import matplotlib.pyplot as plt

# 示例散点图
plt.scatter([1,2,3], [4,5,6], marker='.', color='red')
plt.scatter([1,2,3], [7,8,9], marker='o', color='blue')

# 插入带标记的说明文本
plt.figtext(0.1, 0.1, "· 2020年数据(红色)")
plt.figtext(0.1, 0.07, "○ 2021年数据(蓝色)")

plt.show()

方法2:手动绘制标记+文本(适配特殊标记)

如果需要使用Matplotlib独有的特殊标记(无对应Unicode),可以先在指定位置绘制标记,再在旁侧添加说明文本,确保样式完全匹配。

示例代码:

import matplotlib.pyplot as plt

# 示例散点图(菱形标记)
plt.scatter([1,2,3], [4,5,6], marker='D', color='green')

ax = plt.gca()
# 在归一化坐标(0.1, 0.1)处绘制菱形标记
ax.scatter(0.1, 0.1, marker='D', color='green', transform=ax.transAxes)
# 在标记右侧添加说明文本
plt.figtext(0.12, 0.095, "2022年数据(绿色)")

plt.show()

也可以用annotate一步完成标记+文本的组合:

import matplotlib.pyplot as plt

plt.scatter([1,2,3], [4,5,6], marker='*', color='purple')

plt.annotate(
    '2023年数据(紫色)',
    xy=(0.1, 0.1),          # 标记位置
    xytext=(0.12, 0.1),     # 文本位置
    marker='*',
    color='purple',
    xycoords='axes fraction',
    textcoords='axes fraction',
    va='center'
)

plt.show()

原代码无效原因

你直接传入mmark.MarkerStyle('.')对象给plt.figtext,但figtext仅接受字符串类型内容,因此会将对象转换为其字符串描述(即<matplotlib.markers.MarkerStyle ...>),而非渲染标记样式。

内容的提问来源于stack exchange,提问作者Cattoaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:07:14