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

Ger*_*nuk 4 matplotlib

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

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")
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以使图形尺寸更大,但不必猜测高度/宽度值以保持纵横比作为轴?

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

Pri*_*mer 7

一种方法是设置新的图形大小.set_size_inches

zoom = 2
w, h = fig.get_size_inches()
fig.set_size_inches(w * zoom, h * zoom)
Run Code Online (Sandbox Code Playgroud)

这应该在保持比例的同时改变大小。

另一种方法是增加,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
Run Code Online (Sandbox Code Playgroud)