исправление осей с помощью imshow

Я пытался создать контурный график, используя 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, что решение состоит в том, чтобы использовать «экстент»; вариант как таковой:

pylab.imshow(SLP,origin='lower',extent=(ff.min(),ff.max(),AA.min(),AA.max()))

Это исправляет оси, но масштабировать изображение очень странно:

контурный график с правильными осями, но с неправильной графикой http://web.mit.edu/scottnla/Public/SLP_contour2.pdf

И я не уверен, что вызывает это.

Любые мысли о том, как я могу изменить масштаб оси, не делая изображение таким странным?

Спасибо!!

Натан Лахенмайер

Ответы на вопрос(1)

Ваш ответ на вопрос