2014-05-16 17 views
6

Ich versuche, einen Text mit einem Hintergrund auf einer matplotlib zu beziffern, mit dem Text und Hintergrund sowohl transparent. Der folgende CodeEinstellen Text Hintergrund Transparenz

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

macht den Text halbtransparent in Bezug auf den Hintergrund des Textes, aber der Hintergrund ist nicht transparent in Bezug auf die Linie, um sie in der Abbildung verdeckt.

t.figure.set_alpha(.5) 

und

t.figure.patch.set_alpha(.5) 

auch nicht tun, den Trick.

Antwort

12

Die alpha an plt.text() übergeben wird die Transparenz der Textschrift ändern. Um den Hintergrund zu ändern, müssen Sie die alphaText.set_bbox() mit ändern:

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

Sie können auch tun 'Requisiten = dict (...)' und 'ax.text (... bbox = Requisiten) ' – endolith

Verwandte Themen