我有一个 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),但我仍然得到相同的行为。