删除正在运行的图中的白边

时间:2018-05-15 09:32:16

标签: python matplotlib

我特别要求在一个正在运行的数字中这样做,因为plt.savefig('blaa.png', bbox_inches='tight')的解决方案对我来说并不重要。我不想保存这个数字,我想让它保持运行而没有任何余量。这就是我的人物形象:

mpl.rcParams['toolbar'] = 'None'

fig = plt.figure()
ax = fig.add_subplot(111)
img = plt.imread('blaaa.jpg')
ax.imshow(img, extent=[-180, 180, -90, 90], aspect=1)

ax.set_axis_off()
plt.tight_layout(pad=0, h_pad=0, w_pad=0, rect=None)
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()

这样做之后,我仍然在左侧获得白边。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要将轴位置设置为完整的边界框:

mpl.rcParams['toolbar'] = 'None'

fig = plt.figure()
ax = fig.add_subplot(111)
img = plt.imread('blaaa.jpg')
ax.imshow(img, extent=[-180, 180, -90, 90], aspect=1)

ax.set_axis_off()
plt.tight_layout(pad=0, h_pad=0, w_pad=0, rect=None)
plt.subplots_adjust(wspace=0, hspace=0)  # this shouldn't be needed afaik
ax.set_position([0, 0, 1, 1])
plt.show()

答案 1 :(得分:1)

作为其他答案的替代方案,您可以在致电subplots_adjust时使用不同的关键字:

请注意,wspacehspace是子图之间的空间,因此请勿在此处执行任何操作,您需要left=right=。< / p>

mpl.rcParams['toolbar'] = 'None'

fig = plt.figure()
ax = fig.add_subplot(111)
img = plt.imread('blaaa.jpg')
ax.imshow(img, extent=[-180, 180, -90, 90], aspect=1)

ax.set_axis_off()
plt.subplots_adjust(left=0, right=1)
plt.show()

如果您希望图片跨越整个图形,可以在aspect="auto"中使用imshow(),如果您想要一定的宽高比,这可能不适用