Создание изображения с помощью imshow - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь создать изображение, когда у меня есть три массива, первые два содержат координаты пикселей в направлениях x и y, а третий содержит значение, которое должен иметь каждый пиксель.В направлении x - 275 пикселей, а в направлении y - 72. Массив x состоит из 72 раз записи 1, затем 72 раза записи 2 и так далее.Массив y состоит из подсчета записей до 72, а затем повторного запуска, поэтому в общей сложности он насчитывает 72 275 раз.Для каждой из этих точек пикселей у меня есть значение для этого конкретного пикселя, называемое рад.

fig = figure()
frame = fig.add_subplot(1,1,1)
im = frame.imshow((ix, iy, rad), cmap="inferno")
fig.colorbar(im)
show()

Но выходное изображение кажется плоским, а не квадратным.

Вывод кода

Output of the code

Заранее спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

Похоже, вы хотите pcolormesh, а не imshow.imshow работает лучше всего, когда вы хотите отобразить массив.В качестве такового он будет принимать только в качестве аргумента рад.Вместо этого вам нужен pcolor, который принимает координаты x и y, а также массив, показывающий значения для каждой координаты x, y.

Подвох состоит в том, что ix, iy и rad должны быть одинаковыми dim для pcolorработать.Это легко, однако, используя numpy.meshgrid, который возьмет их и сгенерирует нужные вам массивы.Попробуйте следующее:

xx,yy = numpy.meshgrid(ix,iy)
frame.pcolormesh(xx,yy,rad,cmap='inferno')

Это должно работать.

...