当绘制在强度之上时,箭袋图会发生变化

Quiver plot changes when plotted on top of intensity

所以我试图在强度图上绘制横向矢量场。如果我只是使用以下代码绘制矢量场(强度图被注释掉)

import matplotlib.pyplot as plt
import numpy as np
from numpy import ma

X = np.loadtxt("X.csv", delimiter=",\t", skiprows=1)
Y = np.loadtxt("Y.csv", delimiter=",\t", skiprows=1)
Z = np.loadtxt("Z.csv", delimiter=",\t", skiprows=1)

U = X
V = Y

#plt.imshow(Z)
plt.quiver(U, V)
plt.show()

如该图中所示,一切正常。

正确字段

但是,如果我 运行 它并包括 plt.imshow(Z) 行,那么它会完全改变矢量场,尽管它正确地绘制了强度。

字段不正确

如您所见,这两个字段是不同的。感谢任何帮助,谢谢!

这两个字段看起来不同,因为 imshow 修改了默认轴属性并反转了 y 轴的方向,因此 (0,0) 不是在左下角,而是在左上角.

要更正此问题,您可以将 origin 参数用于 imshow

plt.imshow(Z, origin='lower')

另一个变化是imshow将数据宽高比设置为相等。