matplotlib:拉伸图像以覆盖整个图形

ahm*_*adh 3 matplotlib figure

我已经习惯了使用matlab,现在正试图让移位matplotlib和numpy.matplotlib中是否有一种方法是您正在绘制的图像占据整个图形窗口.

import numpy as np
import matplotlib.pyplot as plt

# get image im as nparray
# ........

plt.figure()
plt.imshow(im)
plt.set_cmap('hot')

plt.savefig("frame.png")
Run Code Online (Sandbox Code Playgroud)

我希望图像保持其纵横比并缩放到图形的大小......所以当我保存它时,它与输入图形完全相同,并且它完全被图像覆盖.

谢谢.

App*_*234 6

我使用以下代码片段完成了此操作.

#!/usr/bin/env python
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from pylab import *

delta = 0.025
x = y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = Z2-Z1  # difference of Gaussians
ax = Axes(plt.gcf(),[0,0,1,1],yticks=[],xticks=[],frame_on=False)
plt.gcf().delaxes(plt.gca())
plt.gcf().add_axes(ax)
im = plt.imshow(Z, cmap=cm.gray)

plt.show()
Run Code Online (Sandbox Code Playgroud)

注意对两侧的灰色边框是与轴的方面rario这是通过设置改变aspect='equal',或者aspect='auto'或者你比.

另外,作为由振亚在评论中提到类似的StackOverflow问题 提到的参数savefigbbox_inches='tight'pad_inches=-1或Pad_inches=0