我试图使用 numpy.meshgrid 和 pylab.imshow() 绘制等高线图;一开始使用我在 stackoverflow 上找到的一些技巧,效果非常好(谢谢家伙!:D)
f = scipy.linspace(1e5,1e6,100)
A = scipy.linspace(1e3,1e5,100)
ff,AA = numpy.meshgrid(f,A)
SLP = calc_SLP2D(ff,AA)
maxAmps = maxA(f)
print maxAmps
brezovich = calc_SLP2D(f,maxAmps)
print brezovich
pylab.imshow(SLP,origin='lower')
pylab.plot(f,maxA(f))
pylab.colorbar()
pylab.xlabel('Frequency [kHz]',{'fontsize':20})
pylab.ylabel('Field Amplitude [A/m]',{'fontsize':20})
pylab.title('Brezovich Criterion',{'fontsize':20})
pylab.grid()
pylab.show()
轴不正确的轮廓图像http://web.mit.edu/scottnla/Public/SLP_contour.pdf
但是,您会注意到轴是根据两个输入矩阵的大小而不是实际值进行编号的。横坐标应从 100,000 到 1,000,000,纵坐标应从 1000 到 5000。我在 stackoverflow 上读到解决方案是使用 'extent' 选项,如下所示:
pylab.imshow(SLP,origin='lower',extent=(ff.min(),ff.max(),AA.min(),AA.max()))
这确实修复了轴,但是缩放图像是一种非常奇怪的方式:
轴正确但图形不正确的等高线图 http://web.mit.edu/scottnla/Public/SLP_contour2.pdf
我不确定是什么原因造成的。
关于如何重新缩放轴而不使图像看起来如此奇怪有什么想法吗?
thanks!!
内森·拉亨梅尔