在 python 中使用子图和 imshow 时移除白色边框 (Matplotlib)
Remove white border when using subplot and imshow in python (Matplotlib)
import numpy as np
import sys
import matplotlib as mpl
import matplotlib.pyplot as plt
我用下面的代码保存一张图片
fig, ax = plt.subplots(frameon=False)
ax.axis ('off')
ax.imshow (array[:,:,0,0,0])
fig.savefig ("file.png", bbox_inches='tight')
然而,我得到的是
这显然还有一个白色的边框。
我该如何摆脱它?
array.shape 是:(256, 256, 1, 1, 3)
看看我的例子可能对你有帮助:
import numpy as np
import matplotlib.pyplot as plt
def save_image(data, filename):
sizes = np.shape(data)
fig = plt.figure()
fig.set_size_inches(1. * sizes[0] / sizes[1], 1, forward = False)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(data)
plt.savefig(filename, dpi = sizes[0], cmap='hot')
plt.close()
data = np.random.randint(0, 100, (256, 256))
save_image(data, '1.png')
对以上答案稍作修改:
def save_image(data, filename):
fig = plt.figure(figsize=(1, 1))
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(data, cmap="gray")
fig.savefig(filename, dpi=data.shape[0])
plt.close(fig)
import numpy as np
import sys
import matplotlib as mpl
import matplotlib.pyplot as plt
我用下面的代码保存一张图片
fig, ax = plt.subplots(frameon=False)
ax.axis ('off')
ax.imshow (array[:,:,0,0,0])
fig.savefig ("file.png", bbox_inches='tight')
然而,我得到的是
array.shape 是:(256, 256, 1, 1, 3)
看看我的例子可能对你有帮助:
import numpy as np
import matplotlib.pyplot as plt
def save_image(data, filename):
sizes = np.shape(data)
fig = plt.figure()
fig.set_size_inches(1. * sizes[0] / sizes[1], 1, forward = False)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(data)
plt.savefig(filename, dpi = sizes[0], cmap='hot')
plt.close()
data = np.random.randint(0, 100, (256, 256))
save_image(data, '1.png')
对以上答案稍作修改:
def save_image(data, filename):
fig = plt.figure(figsize=(1, 1))
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(data, cmap="gray")
fig.savefig(filename, dpi=data.shape[0])
plt.close(fig)