python 存储图片 alpha_保存时Matplotlib图形面颜色alpha(背景色、透明度)
前一個問題是使用savefig()保存屏幕上顯示的相同的面顏色(背景色),即:fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.savefig('foo.png', facecolor=fig.get_facecolor())
(使用savefig()需要重新指定背景色。)
fig.patch.set_alpha(0.5)
我找不到一種方法,讓一個透明的臉顏色的數(shù)字保存為它出現(xiàn)在屏幕上。文檔對此似乎不完整:http://matplotlib.org/faq/howto_faq.html#save-transparent-figures-實(shí)際保存內(nèi)容未顯示。將transparent=True與savefig()一起使用并沒有使facecolor透明的預(yù)期效果,相反,它似乎使除axes legend之外的所有內(nèi)容在該顏色的頂部(包括圖形背景)都透明。
編輯:部分相關(guān)代碼摘錄: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, save_as):
if save:
plt.savefig(save_as, dpi=dpi_file, facecolor=fig.get_facecolor(),
edgecolor='none')
if disp_on is True:
figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
plt.show()
else:
plt.close('all')
也許可以將這些組合起來,但我經(jīng)常在繪圖函數(shù)的開頭調(diào)用set_face_color(),然后再構(gòu)建子塊網(wǎng)格,最后調(diào)用save_and_show()。我想它應(yīng)該在任何一個地方都可以工作,但最理想的情況是,我希望保持函數(shù)分離,并且能夠從最終的圖中提取alpha傳遞到savefig()
編輯兩千字
Alpha=0.5在左邊,1在右邊。
t = [1, 2, 3, 4, 5]
fig = plt.figure()
fig.patch.set_alpha(0.5)
fig.set_facecolor('b')
plt.plot(t, t)
fig2 = plt.figure()
fig2.set_facecolor('b')
plt.plot(t,t)
總結(jié)
以上是生活随笔為你收集整理的python 存储图片 alpha_保存时Matplotlib图形面颜色alpha(背景色、透明度)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反向传播+代码实现
- 下一篇: 报错 ValueError: too m