2014-05-16 13 views
6

Sto provando a mettere del testo con uno sfondo su una figura matplotlib, con il testo e lo sfondo trasparenti. Il seguente codiceRegolazione trasparenza del testo

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() 

rende il testo semi-trasparente rispetto allo sfondo del testo, ma lo sfondo non è affatto trasparente rispetto alla linea oscura in figura.

t.figure.set_alpha(.5) 

e

t.figure.patch.set_alpha(.5) 

, inoltre, non fare il trucco.

risposta

12

Il alpha passato a plt.text() cambierà la trasparenza del carattere del testo. Per modificare lo sfondo è necessario cambiare la alpha utilizzando 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 

enter image description here

+1

Si può anche fare 'props = dict (...)' e 'ax.text (... Bbox = oggetti di scena) ' – endolith

Problemi correlati