前一个问题是使用savefig()保存屏幕上显示的相同的面颜色(背景色),即:fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.savefig('foo.png', facecolor=fig.get_facecolor())
(使用savefig()需要重新指定背景色。)
fig.patch.set_alpha(0.5)
我找不到一种方法,让一个透明的脸颜色的数字保存为它出现在屏幕上。文档对此似乎不完整:http://matplotlib.org/faq/howto_faq.html#save-transparent-figures-实际保存内容未显示。将transparent=True与savefig()一起使用并没有使facecolor透明的预期效果,相反,它似乎使除axes legend之外的所有内容在该颜色的顶部(包括图形背景)都透明。
编辑:部分相关代码摘录:def set_face_color(fig, facecolor):
if facecolor is False:
# Not all graphs get color-coding
facecolor = fig.get_facecolor()
alpha = 1
else:
alpha = 0.5
color_with_alpha = colorConverter.to_rgba(
facecolor, alpha)
fig.patch.set_facecolor(color_with_alpha)
def save_and_show(plt, fig, save, disp_on, s