所以我试图在强度图的顶部绘制一个横向矢量场。如果我只是使用以下代码绘制矢量场(强度图已注释掉)
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) 不再位于左下角,而是位于左上角左边。
要纠正此问题,您可以使用 imshow
的 origin
参数
plt.imshow(Z, origin='lower')
另一个变化是 imshow
将数据纵横比设置为相等。
关于python - 当绘制在强度之上时,颤抖图会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916963/