3

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

ただし、軸には実際の値ではなく、2つの入力行列のサイズによって番号が付けられていることに気付くでしょう。横軸は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

そして、私はこれを引き起こす原因がわかりません。

画像をそれほど奇妙に見せずに軸を再スケーリングする方法について何か考えはありますか?

ありがとう!!

ネイサン・ラチェンマイヤー

4

1 に答える 1

13

aspect='auto'パラメータをに追加してみてくださいimshow。このような:

pylab.imshow(SLP,aspect='auto',origin='lower',extent=(ff.min(),ff.max(),AA.min(),AA.max()))
于 2012-07-14T04:45:58.523 に答える