如何儲存與 Matplotlib 中顯示的圖形相同的圖
Suraj Joshi
2024年2月15日
在使用 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()
輸出:
儲存的圖形:
這個過程會將圖形儲存為 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()
輸出:
儲存的圖形:
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn