python - 当绘制在强度之上时,颤抖图会发生变化

标签 python matplotlib plot 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()

如该图所示,一切正常。

正确字段

Correct Field

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

字段不正确

Incorrect Vector Field

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

最佳答案

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

要纠正此问题,您可以使用 imshoworigin 参数

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

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

关于python - 当绘制在强度之上时,颤抖图会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916963/

相关文章:

python - 如何在 Django 中隐藏成功页面

python - Seaborn 轴范围不适合 Python 中的数据范围

r - R 中的叠加直方图(首选 ggplot2)

matlab - 在 Matlab 中绘制方形曲面

r - 使用独特的 RMarkdown 标题创建多个图

python - 如何对 Pandas Dataframe 的 YAML 进行非规范化?

带有 if 语句的 python exec()

Python - 从字符串中提取数字和逗号(使用 re.sub)

python - 如何从两个测量时间绘制连接点的绘图?

python - 从重复数组中绘制 python 绘图