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

  1. Matplotlib 中以高解析度繪製圖形
  2. 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