如何儲存與 Matplotlib 中顯示的圖形相同的圖

Suraj Joshi 2024年2月15日
如何儲存與 Matplotlib 中顯示的圖形相同的圖

在使用 matplotlib.pyplot.savefig() 儲存圖時,我們有一個名為 dpi 的引數,它指定了文字的相對大小和線條上的筆畫寬度。預設情況下,matplotlib.pyplot.show()dpi 值是 80,而 matplotlib.pyplot.savefig()dpi 預設值是 100。
為了確保 show()savefig() 方法的圖看起來是一樣的,我們必須在 savefig() 方法中使用 dpi=fig.dpi。我們也可以在 matplotlib.pyplot.fig() 方法中設定 figsize 引數來調整圖的絕對尺寸,使兩個圖的尺寸相同。

savefig() 方法中設定 dpi=fig.dpi,可以儲存與 Matplotlib 中顯示的圖形相同的圖形

import matplotlib.pyplot as plt

x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]

fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi)
plt.show()

輸出:

顯示圖儲存圖與顯示圖相同 Matplotlib

儲存的圖形:

儲存的圖與顯示的圖相同 Matplotlib

這個過程會將圖形儲存為 plot.png,與顯示的圖形相同。

有時,我們可能會在建立的圖上得到很大的邊框。為了解決這個數值,我們可以使用 matplotlib.pyplot.tight_layout() 方法,或者在 savefig() 方法中設定 bbox_inches='tight'

import matplotlib.pyplot as plt

x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]

fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi, bbox_inches="tight")
plt.show()

輸出:

儲存的圖與顯示圖相同 Matplotlib

儲存的圖形:

儲存的圖與顯示的圖相同 Matplotlib

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Matplotlib Images