如何在保持纵横比的同时增加保存图形的大小

How to increase size of saved figure while keeping aspect ratio

我正在绘制数据并将其保存到文件中。

import matplotlib.pyplot as plt
fig=plt.figure(figsize=(10,10))
plt.gca().set_aspect(1)
plt.scatter(range(10), range(0,20,2))
fig.savefig("test.jpg")

有没有一种简单的方法可以使图形尺寸变大,而不必猜测 height/width 值以保持纵横比为轴?

如果我有多个子图并且我想保持它们的固定轴比,那就更难了。我想控制图的大小(scale),但图上不引入空边框

一种方法是使用 .set_size_inches:

设置新图形大小
zoom = 2
w, h = fig.get_size_inches()
fig.set_size_inches(w * zoom, h * zoom)

这应该在保持比例的同时改变尺寸。

另一种方法是增加dpi,如果你只需要不同尺寸的保存图形:

fig, ax = plt.subplots(figsize=(10,10))
ax.set_aspect(1)
ax.scatter(range(10), range(0,20,2))
dpi = fig.get_dpi()   # This will get dpi that is set matplotlibrc
fig.savefig("test.jpg", dpi=dpi*2)  # Multiply dpi by whatever ration you want to increase the figure