<p>您可以使用<code>pad</code>、<code>shrink</code>和<code>aspect</code>kwargs的组合来完成此操作:</p>
<pre><code>from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as plt
def make_plot(data,fig,subplot):
nphi,nt = data.shape
phi_coords = np.linspace(0,np.pi*2,nphi+1) - np.pi/2.
theta_coords = np.linspace(0,np.radians(35),nt+1)
ax = fig.add_subplot(subplot,projection='polar')
ax.set_thetagrids((45,90,135,180,225,270,315,360),(9,12,15,18,21,24,3,6))
ax.set_rgrids(np.arange(10,35,10),fmt='%s\u00b0')
theta,phi = np.meshgrid(phi_coords,theta_coords)
quadmesh = ax.pcolormesh(theta,phi,data)
ax.grid(True)
cb = fig.colorbar(quadmesh,ax=ax, shrink=.5, pad=.2, aspect=10)
return fig,ax,cb
a = np.zeros((360,71)) + np.arange(360)[:,None]
b = np.random.random((360,71))
fig = plt.figure()
t1 = make_plot(a,fig,121)
t2 = make_plot(b,fig,122)
</code></pre>
<p><a href="http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.colorbar" rel="noreferrer">^{<cd4>} doc</a></p>
<p>这些参数的最佳值将取决于轴的纵横比。</p>
<p>轴的大小似乎没有收缩到极坐标图上,因此在1x2布局中,在图的上方和下方有很多空间,这些空间是轴对象的一部分,但是是空的。颜色条的大小是由矩形大小而不是圆形大小设置的,因此默认值不能正常工作。也许有办法做收缩包装,但我不知道怎么做。</p>
<p>另一种方法是强制您的图形具有正确的纵横比,例如:</p>
<pre><code>fig.set_size_inches(10, 4) # for 1x2
fig.set_size_inches(4, 10) # for 2x1
</code></pre>
<p>这使得子图成正方形,所以默认值或多或少起作用。</p>