首页 > 解决方案 > 使注释框的一部分透明

问题描述

如何仅使注释框中的部分文本透明?

例如,这段代码(改编自这里

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)

ax.annotate('local max (transparent)', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05),
            )

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

产生以下输出:

在此处输入图像描述

我希望注释框中的透明一词稍微透明。但是,文本的其余部分(局部最大值)应按当前状态显示。

标签: matplotlibtextannotationsformatting

解决方案


您可以使用alpha参数。您还可以在 arrowprops 参数 dict 中使用 alpha 来使箭头也透明。

ax.annotate('local max (transparent)', xy=(2, 1), xytext=(3, 1.5),
        arrowprops=dict(facecolor='black', shrink=0.05,alpha=0.5),
        alpha=0.5
        )

它将产生以下情节:

阴谋


推荐阅读