如何在 Matplotlib 中以高解析度繪製和儲存圖形
Suraj Joshi
2023年1月30日
為了在 Matplotlib 以高解析度儲存圖形,我們控制 savefig()
函式的各種引數。同樣,我們可以通過在 figure()
函式中設定 dpi
引數的高值來繪製高解析度的圖形。
Matplotlib 中以高解析度繪製圖形
我們可以通過在 matplotlib.pyplot.figure()
函式中設定較高的 dpi
值來繪製高解析度的圖形。
matplotlib.pyplot.figure()
的語法:
matplotlib.pyplot.figure(num=None,
figsize=None,
dpi=None,
facecolor=None,
edgecolor=None,
frameon=True,
FigureClass=<class 'matplotlib.figure.Figure'>,
**kwargs)
dpi 代表每英寸點數。它代表圖中每英寸的畫素數。matplotlib.pyplot.figure()
函式中 dpi 的預設值為 100。我們可以設定更高的 dpi 值來生成高解析度圖。但是,增加 dpi 也會放大數字,我們必須調整 dpi 的適當值,以免數字被裁剪。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 20)
m = 1.5
c = 2
y = m * x + c
plt.figure(dpi=150)
plt.plot(x, y)
plt.title("y=mx+c")
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.show()
輸出:
Matplotlib 以高解析度儲存圖形
我們可以通過在 matplotlib.pyplot.savefig()
函式中設定較高的 dpi 值來繪製高解析度的圖形。
matplotlib.pyplot.savefig()
的語法:
matplotlib.pyplot.savefig(fname,
dpi=None,
facecolor='w',
edgecolor='w',
orientation='portrait',
papertype=None,
format=None,
transparent=False,
bbox_inches=None,
pad_inches=0.1,
frameon=None,
metadata=None)
我們可以通過 savefig()
函式中的 dpi
引數來控制所儲存圖形的解析度。同樣,我們也可以在儲存圖時更改格式。通常,對於高解析度圖,png
比 jpeg
更好,因為 png
是一種無失真壓縮格式,而另一種是有失真壓縮格式。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5)
m = 1.5
c = 2
y = m * x + c
plt.plot(x, y)
plt.title("y=mx+c")
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.savefig("High resoltion.png", dpi=300)
這樣可以在當前工作目錄中以比預設情況更高的解析度將圖另存為 High resoltion.png
。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn