Estoy tratando de poner un texto con fondo en una figura de matplotlib, con el texto y el fondo transparentes. El siguiente codigo
import numpy as np import matplotlib.pyplot as plt plt.figure() ax = plt.subplot(111) plt.plot(np.linspace(1,0,1000)) t = plt.text(0.03,.95,'text',transform=ax.transAxes,backgroundcolor='0.75',alpha=.5) plt.show()
hace que el texto sea semitransparente en relación con el fondo del texto, pero el fondo no es en absoluto transparente en relación con la línea que oculta en la figura.
t.figure.set_alpha(.5)
y
t.figure.patch.set_alpha(.5)
Tampoco hagas el truco.
El alpha
pasado a plt.text()
cambiará la transparencia de la fuente del texto. Para cambiar el fondo tienes que cambiar el alpha
usando Text.set_bbox()
:
t = plt.text(0.5, 0.5, 'text', transform=ax.transAxes, fontsize=30) t.set_bbox(dict(facecolor='red', alpha=0.5, edgecolor='red')) #changed first dict arg from "color='red'" to "facecolor='red'" to work on python 3.6