【发布时间】:2013-02-20 02:16:02
【问题描述】:
我正在尝试使用 streamplot 函数来绘制速度场,但由于某种原因它失败了。这是一个关于该函数的原始 SO 帖子,带有一个示例:how to plot streamlines , when i know u and v components of velocity(numpy 2d arrays), using a plotting program in python?。这个例子对我来说很好;但是,我尝试修改这些值以简化函数并模拟初始条件,现在它不再起作用了。
这是我的“简化”代码:
import matplotlib.pyplot as plt
import numpy as np
from streamplot import streamplot
x = np.linspace(0, 1, 10)
y = np.linspace(0, 2, 10)
u = np.zeros((len(x), len(y)))
v = np.zeros((len(x), len(y)))
u[:,len(y)-1]=1
speed = np.sqrt(u*u + v*v)
plt.figure()
plt.subplot(121)
streamplot(x, y, u, v,density=1, INTEGRATOR='RK4', color='b')
plt.subplot(122)
streamplot(x, y, u, v, density=(1,1), INTEGRATOR='RK4', color=u,
linewidth=5*speed/speed.max())
plt.show()
感谢任何建议或帮助。
【问题讨论】:
-
欢迎来到 SO!。为了让我们为您提供最好的帮助,您需要在您的问题中提供足够的信息来帮助我们。 如何它不再起作用了?它是否给您任何错误(如果有,请粘贴 whole 错误)?
-
您是否尝试过使用 matplotlib 中的流图?不要从流图中导入流图,而是尝试使用
plt.streamplot -
您的 v-vector 为 0,而您的 u-vector 除了最后一列之外为 0,您希望从中得到什么样的“流”?你确定这些值是正确的吗?
-
tcaswell:因为数组中有零,所以我得到一个错误,而在 SO 的示例中,数组都是非零的,并且没有错误。
-
Rutger:是的,这些都是正确的。我试图让这个工作,所以我可以用它来制作一个随着时间的推移速度场的动画。初始条件涉及零;然而,随着时间的推移,该领域的大部分变得非零。为了简化,我省略了其余代码。
标签: python matplotlib plot