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.
的网格中未定义的点处绘制速度
我有两个数组 (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() 调用使不同方向的颜色不同,如
我想知道是否有更好的方法来 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.
的网格中未定义的点处绘制速度