我正在尝试找出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图像上叠加矢量场时,这很烦人,因为在转置时很容易失去对坐标系的跟踪。