溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在matplotlib中利用plt.savefig() 對(duì)圖片進(jìn)行輸出

發(fā)布時(shí)間:2021-01-05 14:28:10 來(lái)源:億速云 閱讀:2125 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家介紹怎么在matplotlib中利用plt.savefig() 對(duì)圖片進(jìn)行輸出,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

要讓程序自動(dòng)將圖表保存到文件中,代碼為:

plt.savefig('squares_plot.png', bbox_inches='tight')
  • 第一個(gè)實(shí)參指定要以什么樣的文件名保存圖表,這個(gè)文件將存儲(chǔ)到scatter_squares.py所在的目錄中。

  • 第二個(gè)實(shí)參指定將圖表多余的空白區(qū)域裁減掉。如果要保留圖表周圍多余的空白區(qū)域,可省略這個(gè)實(shí)參。

但是發(fā)現(xiàn)matplotlib使用plt.savefig()保存的圖片

周圍有一圈空白。那么如何去掉該空白呢?

首先,關(guān)閉坐標(biāo)軸顯示:

plt.axis('off')

但是,這樣只是關(guān)閉顯示而已,透明的坐標(biāo)軸仍然會(huì)占據(jù)左下角位置,導(dǎo)致輸出的圖片偏右。
要想完全去掉坐標(biāo)軸,需要改為以下代碼:

plt.axis('off')
fig = plt.gcf()
fig.set_size_inches(7.0/3,7.0/3) #dpi = 300, output = 700*700 pixels
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.gca().yaxis.set_major_locator(plt.NullLocator())
plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
plt.margins(0,0)
fig.savefig(out_png_path, format='png', transparent=True, dpi=300, pad_inches = 0)

即可完成去掉空白。

注:如果不采用 subplot_adjust + margin(0,0),而是在fig.savefig()的參數(shù)中添加bbox_inches = 'tight',也可以達(dá)到去除空白的效果; 但是,這樣會(huì)導(dǎo)致對(duì)圖片輸出大小的設(shè)置失效。

關(guān)于怎么在matplotlib中利用plt.savefig() 對(duì)圖片進(jìn)行輸出就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI