当绘制在强度之上时,箭袋图会发生变化
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
将数据宽高比设置为相等。
所以我试图在强度图上绘制横向矢量场。如果我只是使用以下代码绘制矢量场(强度图被注释掉)
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
将数据宽高比设置为相等。