Я пытаюсь выяснить разницу в соглашениях между imshow
и quiver
.Когда я запускаю следующий код
import matplotlib.pyplot as plt
import numpy as np
img = np.random.randn(20, 40)
xs, ys = [15], [30]
us, vs = [4], [9]
plt.imshow(img, origin='lower')
plt.quiver(xs, ys, us, vs, scale_units='xy', angles='xy', scale=1)
plt.show()
, я ожидаю, что будет нарисована стрелка, которая находится в диапазоне img
(начиная с 15 + 4 < 20
и 30 + 9 < 40
).Тем не менее, я получаю изображение, подобное этому: 
и для получения ожидаемого результата мне нужно транспонировать изображение img
или переключить xs
с помощью ys
и us
с vs
.С plt.imshow(img.T)
я получаю ожидаемый результат
.Вероятно, есть некоторые соглашения, которые мне не хватает, и я хотел бы выяснить, какие.Это раздражает при наложении векторных полей на изображения RGB, поскольку при транспонировании легко потерять отслеживание систем координат.