matplotlib如何裁剪图,以便删除所有白色边框/填充?

时间:2018-11-08 22:10:06

标签: python matplotlib

假设我正在使用matplotlib进行3D散点图。我正在使用此处提供的代码:https://matplotlib.org/2.1.1/gallery/mplot3d/scatter3d.html

出于我的目的,我需要删除轴,刻度线等。因此我正在这样做:

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.set_xticklabels([])
ax.set_yticklabels([])
ax.set_zticklabels([])
ax.set_axis_off()

我也删除了所有轴标签。要删除白色填充,我保存这样的图形:

plt.savefig("test.png", bbox_inches = 'tight', pad_inches = 0)
plt.show()

但是仍然有白色填充,生成的图形如下所示: enter image description here

但是我想要的是一个图,该图仅限制图中所有数据点所在的部分,像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

使用subplots_adjust。这将删除轴周围(如果有多个)之间的任何空间,因此不会出现“图死空间”。

fig, ax = plt.subplots()
ax.scatter(np.random.random(100), np.random.random(100))
ax.set_axis_off()
fig.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0)
fig.savefig('test.png', edgecolor='r', lw=2)  # red line to highlight extent of figure

enter image description here

与无subplots_adjust

enter image description here