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

如何在Matplotlib中使用内部含文本的自定义标记?

在Matplotlib中给Mathtext添加形状包裹的实现方法

当然可以实现你想要的效果!咱们都知道Matplotlib支持用$...$格式的mathtext渲染数学标记,要把这类文本包裹在圆形、矩形或者其他形状里(类似注册商标符号的样式),用分层绘制的思路就能轻松搞定。

具体解决方案

核心思路就是先画一个尺寸稍大的形状(作为“容器”),再在同一个位置叠放你的mathtext文本,让文本刚好落在形状内部。举个实际的代码例子:

import matplotlib.pyplot as plt

# 创建画布和坐标轴
fig, ax = plt.subplots()

# 第一步:绘制方形包裹标记
# s控制形状大小,marker选's'是方形,选'o'就是圆形
ax.scatter(0.5, 0.5, s=220, marker='s', color='white', edgecolor='black')
# 第二步:在同一位置绘制mathtext文本
ax.text(0.5, 0.5, '$T$', ha='center', va='center', fontsize=14)

plt.show()

调整技巧

  • 如果你想要圆形包裹,只需要把代码里的marker='s'改成marker='o'即可;
  • 通过调整scatter的s参数可以改变形状大小,配合text的fontsize参数,能让文本和形状的比例更协调;
  • 还可以修改形状的color(填充色)、edgecolor(边框色),以及文本的颜色,来适配你的绘图风格。

亲测这个方法能完美实现你要的效果,我自己也用这个思路解决过类似的标记需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:12:46