使用subplot时删除白色边框并在python中显示imshow(Matplotlib)

ref*_*fle 7 python matplotlib figure imshow

import numpy as np
import sys
import matplotlib as mpl
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

我使用以下代码来保存图像

fig, ax = plt.subplots(frameon=False)
ax.axis                 ('off')
ax.imshow               (array[:,:,0,0,0])
fig.savefig             ("file.png", bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)

但是,我得到的是 在此输入图像描述 而这显然仍然有一个白色的边框.我怎么摆脱它?


array.shape是:(256,256,1,1,3)

Ser*_*ity 10

看看我的例子它可能对你有所帮助:

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

在此输入图像描述

  • 那不应该是“sizes[1]/sizes[0]”吗? (3认同)

ref*_*fle 5

对上面的答案稍做修改:

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