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

如何让Matplotlib注释框中的部分文本设置为透明?

如何仅将Matplotlib注释框中的部分文本设置为透明?

嘿,这个需求其实用Matplotlib自带的富文本支持就能轻松搞定!你不需要搞复杂的多文本叠加,直接用HTML标签就能给注释里的特定片段单独设置透明度。下面是修改后的完整代码,以及关键细节说明:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=2)

# 用HTML span标签给指定文本设置透明度
ax.annotate(
    'local max (<span alpha="0.3">transparent</span>)',
    xy=(2, 1), 
    xytext=(3, 1.5),
    arrowprops=dict(facecolor='black', shrink=0.05),
    # 确保Matplotlib用原生渲染器解析HTML(避免LaTeX干扰)
    usetex=False
)

ax.set_ylim(-2,2)
plt.show()

核心细节:

  • <span alpha="0.3">transparent</span>:把你要变透明的文本用这个标签包起来就行,alpha值从0(完全看不见)到1(完全不透明)随便调,比如改成0.1就是几乎透明。
  • usetex=False:如果你的环境默认开了LaTeX渲染,得加上这个参数——LaTeX不认HTML标签,Matplotlib原生的文本渲染器才能正确解析这些富文本标记。

要是你不想用HTML的方式,也可以拆成两个注释分别放不透明和透明的文本,手动对齐位置,但这种方法太麻烦了,还是富文本的方式省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:46:08