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

时间:2015-04-30 08:28:40

标签: 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")

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

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

1 个答案:

答案 0 :(得分:3)

一种方法是使用.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