<p>修改空白的几种方法:</p>
<ol>
<li><p>减少轴内的空白。为此,可以使用以下方法修改<code>x</code>、<code>y</code>和{<cd3>}限制:</p>
<pre><code>ax.set_xlim()
ax.set_ylim()
ax.set_zlim()
</code></pre></li>
<li><p>减少轴外的空白。为此,可以使用:</p>
<pre><code>fig.subplots_adjust(left=0, right=1, bottom=0, top=1)
</code></pre></li>
<li><p>最后,您可以在调用<code>savefig</code>时保存一部分数据。您可以使用<code>bbox_inches</code>kwarg修改此区域,方法是使用实际的<code>Bbox</code>,而不是将其设置为<code>tight</code>。</p></li>
</ol>
<p>例如,让我们考虑来自<a href="http://matplotlib.org/examples/mplot3d/surface3d_demo2.html" rel="nofollow noreferrer">^{<cd8>} gallery</a>的图像。请注意,我已经更改了轴和图形的背景颜色,因此它们在下面的页面上显示得很清楚。在</p>
<pre><code>from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(10,8))
# I added a pink axis background, just so its easy to see against the white page
ax = fig.add_subplot(111, projection='3d', axisbg='#FFAAAA')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
ax.axis('off')
# Save the original figure (using a grey background for the figure for clarity)
plt.savefig('3d_whitespace0.png', facecolor='#AAAAAA')
</code></pre>
<p><a href="https://i.stack.imgur.com/q8q9u.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/q8q9u.png" alt="enter image description here"/></a></p>
<pre><code># Step 1 above: change the axes limits
ax.set_xlim(-8, 8)
ax.set_ylim(-8, 8)
ax.set_zlim(-8, 8)
plt.savefig('3d_whitespace1.png', facecolor='#AAAAAA')
</code></pre>
<p><a href="https://i.stack.imgur.com/iGsi4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iGsi4.png" alt="enter image description here"/></a></p>
<pre><code># Step 2 above: change the subplot margins
fig.subplots_adjust(left=0, right=1, bottom=0, top=1)
plt.savefig('3d_whitespace2.png', facecolor='#AAAAAA')
</code></pre>
<p><a href="https://i.stack.imgur.com/VT5WE.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/VT5WE.png" alt="enter image description here"/></a></p>
<pre><code># Step 3 above: save only a portion of the figure. Here we will cut one inch
# off each side of the figure, to change the 10in x 8in figure to 8in x 6in
bbox = fig.bbox_inches.from_bounds(1, 1, 8, 6)
plt.savefig('3d_whitespace3.png', bbox_inches=bbox, facecolor='#AAAAAA')
</code></pre>
<p><a href="https://i.stack.imgur.com/pIrIl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pIrIl.png" alt="enter image description here"/></a></p>