2014-05-16 20 views
6

Tôi đang cố gắng đặt một số văn bản có nền trên hình matplotlib, với văn bản và nền trong suốt. Mã sau đâyĐiều chỉnh độ trong nền của văn bản

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

làm cho văn bản bán trong suốt so với nền của văn bản, nhưng nền không minh bạch so với dòng nó che khuất trong hình.

t.figure.set_alpha(.5) 

t.figure.patch.set_alpha(.5) 

cũng không làm các trick.

Trả lời

12

alpha được chuyển đến plt.text() sẽ thay đổi độ trong suốt của phông chữ. Để thay đổi hình nền, bạn phải thay đổi alpha sử dụng 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

Bạn cũng có thể làm 'props = dict (...)' và 'ax.text (... bbox = props) ' – endolith

Các vấn đề liên quan