Matplotlib文字透明度

6 投票
2 回答
7457 浏览
提问于 2025-04-18 08:44

我在想,能不能在Matplotlib中改变文本的透明度。set_alpha这个方法好像不管用,而且在文档里也没找到相关的信息。有没有什么其他的解决办法呢?

我想把这个功能和一个选择事件(pick_event)连接起来。

编辑:其实我是在尝试改变图例文本的透明度。虽然我用set_alpha来解决这个问题,但我没注意到我是在修改一个列表的透明度,所以没成功。总结一下,从大家的回答来看,透明度确实可以用set_alpha来修改。

2 个回答

2

如果你想给图例的文字设置透明度(alpha),你应该直接说明这一点:

ax.plot([1,2,3], [4,5,6], label='Null')
leg = ax.legend()

# print dir(leg) # inspection
for _txt in leg.texts:
    _txt.set_alpha(0.3)

顺便提一下:因为我总是记不住在mpl文档中具体要找什么,所以我查看了图例对象。发现属性 texts 似乎很有用。

10

你可以在使用 annotate 添加文字到你的图形时,设置透明度(alpha)。

之前的效果:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.annotate("TESTING", xy=(.5, .5), xytext=(.5, .5))

plt.show()

enter image description here

之后的效果:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

text = ax.annotate("TESTING", xy=(.5, .5), xytext=(.5, .5))

text.set_alpha(.4)

plt.show()

enter image description here

撰写回答