У меня есть 3D-массив, первые два измерения которого являются пространственными, так сказать (x, y). Третье измерение содержит точечную информацию.
print H.shape # --> (200, 480, 640) spatial extents (200,480)
Теперь, выбрав определенную плоскость в третьем измерении, я могу отобразить изображение с
imdat = H[:,:,100] # shape (200, 480)
img = ax.imshow(imdat, cmap='jet',vmin=imdat.min(),vmax=imdat.max(), animated=True, aspect='equal')
Теперь я хочу повернуть куб, чтобы я переключился с (x, y) на (y, x).
H = np.rot90(H) # could also use H.swapaxes(0,1) or H.transpose((1,0,2))
print H.shape # --> (480, 200, 640)
Теперь, когда я звоню:
imdat = H[:,:,100] # shape (480,200)
img.set_data(imdat)
ax.relim()
ax.autoscale_view(tight=True)
У меня странное поведение. Изображение вдоль строк отображает данные до 200-й строки, а затем оно становится черным до конца оси y (480). Ось X простирается от 0 до 200 и показывает повернутые данные. Теперь, еще один поворот на 90 градусов, изображение отображается правильно (только поворот на 180 градусов)
Мне кажется, что после поворота данных, границ оси (или экстентов изображения?) Или что-то не обновляется правильно. Может кто-нибудь помочь?
PS: чтобы заняться плохим взломом, я также пытался восстанавливать новое изображение (вызывая ax.imshow) после каждого поворота, но я все еще получаю то же поведение.