擅长:python、mysql、java
<p>首先,你应该发布一个最小的工作示例。由于您使用的数据不是可用的,我只是使用了一些自己的虚拟数据。在</p>
<p>基本上问题是在轴上有任何数据之前设置纵横比。我不知道为什么,如果是我,我会把它标记为bug而不是特性。所以在调用contourf之后设置纵横比。在</p>
<p>我也不明白为什么aspect=1不适用于contourf,而适用于imshow。在</p>
<pre><code> from numpy import *
from matplotlib.pyplot import *
# dummy data preparations
x = linspace( -3.0, 3.0, 100 )
y = linspace( -2.0, 2.0, 100 )
def V( x, y=None ):
if y == None:
return 1.0/x
xv,yv = meshgrid( x, y, sparse=False, indexing='xy' )
return 1.0 / sqrt(xv**2+yv**2)
rlev = sqrt(18.) / 2.**linspace( 0,4,10 )
pic = V(x,y)
# your try to plot it which results in white borders
fig = figure()
title('old version')
contourf( x, y, pic, levels=V(rlev) )
axis('equal')
tight_layout()
savefig('old.png')
</code></pre>
<p>需要10次重复才能发布图片:'旧.png'</p>
^{pr2}$
<p>需要10次重复才能发布图片:'新建.png'</p>