poprawianie osi za pomocą imshow
Próbowałem utworzyć wykres konturowy za pomocą numpy.meshgrid i pylab.imshow (); działało to bardzo dobrze na początku, korzystając z kilku wskazówek, które znalazłem na stackoverflow (dzięki facetowi!: 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()
obraz konturowy z nieprawidłowymi osiami http://web.mit.edu/scottnla/Public/SLP_contour.pdf
Jednak zauważysz, że osie są ponumerowane przez rozmiar dwóch macierzy wejściowych, a nie przez wartości rzeczywiste. Odcięta powinna wynosić od 100 000 do 1 000 000 przy rzędnej wynoszącej od 1000 do 5000. Przeczytałem na przepływowym stosie, że rozwiązaniem jest użycie opcji „zakres” jako takiej:
pylab.imshow(SLP,origin='lower',extent=(ff.min(),ff.max(),AA.min(),AA.max()))
To naprawia osie, ale skaluje obraz jest naprawdę dziwny:
I nie jestem pewien, co to powoduje.
Jakieś przemyślenia, w jaki sposób mogę przeskalować osie, nie czyniąc tego obrazu tak dziwnym?
dzięki!!
nathan lachenmyer