Quiver 图中的下采样速度信息

Downsampling Velocity Information in a Quiver Plot

我有两个数组 (vel_y,vel_z) 分别表示 y 和 z 方向的速度,它们的形状都为 (512,512),我试图用箭袋表示阴谋。 这是我绘制箭袋的方式:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,512,num=512)
[X,Y] = np.meshgrid(x,x)
fig, ax = plt.subplots(figsize=(7,7))
ax.quiver(X,Y,vel_y,vel_z,np.arctan2(vel_z,vel_y),pivot='mid',units='x',scale=2)

arctan2() 调用使不同方向的颜色不同,如 中一样。 显然绘制所有 5122 这些箭头会造成混乱且难以解析的图,您可以在此处看到: Quiver Plot.


我想知道是否有更好的方法来 scale/represent 箭头以使其更具可读性?

但是,我的主要问题是如何 'downsample' 从绘制 5122 中获取速度信息例如指向 1002 的箭头。这是否需要在定义速度的点之间进行插值?

谢谢!

执行此操作的简单方法是在每个给 quiver 的向量中对 N 取一个点。

对于给定的 np.array,您可以使用以下语法执行此操作:a[::N]。如果您有多个维度,请在每个维度中重复此操作(您可以为每个维度提供不同的滑动):a[::N1, ::N2].

你的情况:

N1 = 5
N2 = 5
ax.quiver(X[::N1, ::N2], Y[::N1, ::N2], vel_y[::N1, ::N2], vel_z[::N1, ::N2], np.arctan2(vel_z,vel_y)[::N1, ::N2], pivot='mid',units='x',scale=2)

您不需要插值,除非您想要在您拥有 measurements/simulations/whatever.

的网格中未定义的点处绘制速度