Inverter imagem exibida por imshow em matplotlib

89

Eu queria que a imshow()função matplotlib.pyplotexibisse as imagens da maneira oposta, ou seja, de cabeça para baixo. Existe uma maneira simples de fazer isso?

pratikm
fonte

Respostas:

169

Especifique o argumento da palavra-chave origin='lower'ou origin='upper'em sua chamada para imshow.

wim
fonte
por que o padrão difere em máquinas diferentes? Existe uma maneira de definir o padrão? Obrigado por esta resposta, no entanto, no passado eu tentei consertar isso usando viradas de matriz e outras coisas. Isso é muito mais fácil!
Milla Well,
provavelmente por causa de diferentes versões do pyplot (eles mudaram a convenção em algum lugar de 0,0 sendo superior esquerdo para inferior esquerdo)
wim
1
E se você quiser movê-lo no sentido horário.
Rahmi Pruitt
-10

adicione .T após os dados que deseja plotar

plt.imshow(data.T)

Isso vai "transpor" os dados

Ben Pickering
fonte
Isso pressupõe que os dados mostrados são uma matriz Numpy e não uma lista ou outra estrutura. Especificamente por chamar .Tsignifica chamarnumpy.ndarray.T
RegularlyScheduledProgramming
14
Transpor é uma inversão diagonal. Os usuários queriam uma inversão vertical.
wim