如何在 Matplotlib 中以高分辨率绘制和保存图形

Suraj Joshi 2023年1月30日 2020年6月9日
  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

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn