python 了解流式图功能

beq87vna  于 2023-01-12  发布在  Python
关注(0)|答案(1)|浏览(147)

我尝试使用streamplot函数绘制一些矢量场,并遵循一些教程(我是Python新手),我发现了类似于以下内容的东西

import numpy as np
import matplotlib.pyplot as plt
n=5
x=np.linspace(-3,3,n)
y=np.linspace(-3,3,n)
X,Y=np.meshgrid(x,y)
# vector field
u=np.cos(X+Y)
v=np.sin(X-Y)
# plot
plt.streamplot(X, Y, u, v, density=2)
plt.show()

到目前为止还不错,但是如果我用n=50来改变meshgrid,图几乎是一样的,那么二维数组X和Y在流图函数中的作用是什么呢?

bwntbbo3

bwntbbo31#

当调用streamplot函数时,u和v数组只存储通常对应于速度的任意值。在这些u和v数组中不存在位置信息或坐标。那么,我们可以说streamplot函数中X和Y数组的目的是将坐标信息Map到u和v数组的值。
在你所展示的例子中,改变n的值既不会改变域的边界,也不会改变u或v数组的速度。改变n的值所做的是增加域边界之间的细节。这意味着允许streamplot跟随所提供的数据,而不需要做过多的插值。
请通过调用下面的代码来观察细节的增加。数组x将被分成10个相等的部分,而y将被分成20个。

import numpy as np

x = np.linspace(0,1,11)
y = np.linspace(0,1,21)
print("10 intervals:", x)
print("20 intervals:", y)

相关问题