如何在 Matplotlib 中以高解析度繪製和儲存圖形

Suraj Joshi 2023年1月30日
  1. Matplotlib 中以高解析度繪製圖形
  2. Matplotlib 以高解析度儲存圖形
如何在 Matplotlib 中以高解析度繪製和儲存圖形

為了在 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 以高解析度儲存圖形

我們可以通過在 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 引數來控制所儲存圖形的解析度。同樣,我們也可以在儲存圖時更改格式。通常,對於高解析度圖,pngjpeg 更好,因為 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 avatar Suraj Joshi avatar

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

LinkedIn