# streamline


根据二维或三维向量数据绘制流线图

函数库: TyPlot

# 语法

streamline(X,Y,Z,U,V,W,startX,startY,startZ)
streamline(U,V,W,startX,startY,startZ)

streamline(X,Y,U,V,startx,starty)
streamline(U,V,startx,starty)

streamline(verts)
streamline(___,options)
streamline(ax,___)

lineobj = streamline(___)

# 说明

streamline(X,Y,Z,U,V,W,startX,startY,startZ) 返回为三维向量数据绘制的流线图。输入 X、Y 和 Z 是向量数据坐标,U、V 和 W 是向量数据,而 startX、startY 和 startZ 是流线图的起始位置。示例


streamline(U,V,W,startX,startY,startZ) 使用 U、V 和 W 的默认坐标数据。U、V、W 中每个元素的 (x,y,z) 位置分别基于列、行和页面索引。


streamline(X,Y,U,V,startX,startY) 返回为二维向量数据绘制的流线图。输入 X 和 Y 是向量数据坐标,U 和 V 是向量数据,而 startX 和 startY 是流线图的起始位置。示例


streamline(U,V,startX,startY) 使用 U 和 V 的默认坐标数据。U 和 V 中每个元素的 (x,y) 位置分别基于列索引和行索引。


streamline(verts) 从顶点绘制流线图,指定为顶点数组(由 stream2、stream3 返回)。示例


streamline(___,options) 使用指定的选项绘制流线图,定义为一元素向量或二元素向量,其形式为 step 或 [step maxvert],其中 step 是用于对向量数据进行插值的以数据单元表示的步长,maxvert 是流线图中顶点的最大数量。将此参量与上述语法中的任何输入参量组合一起使用。


streamline(ax,___) 在指定坐标区中而不是当前坐标区对象 (gca) 中绘制流线图。


lineobj = streamline(___) 返回由一个或多个 Line 对象组成的向量。创建流线图后,使用 lineobj 修改流线图的属性。有关属性列表,请参见 Line 属性示例

# 示例

绘制流线图

定义该数据。

using TyPlot
using TyBase
x, y = meshgrid2(0:0.1:1, 0:0.1:1);
u = x;
v = -y;

创建数据的箭头图。绘制沿线条 y=1 上的不同点开始的流线图。

figure()
quiver(x, y, u, v)

startx = 0.1:0.1:1;
starty = ones(size(startx));
hold("on");
streamline(x, y, u, v, startx, starty);
hold("off");
计算三维流线图

加载 wind 数据集,其中包含北美地区的气流测量值。

  • 三维数组 x、y 和 z 表示气流测量值的位置;
  • 三维数组 u、v 和 w 表示三维向量场中气流的速度。

定义 16 个假想粒子的起始位置。在本例中,粒子都从 x = 80 处开始,起始 y 位置的范围是从 20 到 50,起始 z 位置的范围是从 0 到 15。

using TyPlot
using TyBase
pkg_dir = pkgdir(TyPlot)
source_path = pkg_dir * "/examples/数据文件/wind.jl"
include(source_path)

startX, startY, startZ = meshgrid3([80], 20:10:50, 0:5:15)

在 startX、startY 和 startZ 中的起始位置集合处,计算放入气流中的一个假想粒子的三维流线图顶点数据。

verts = stream3(x, y, z, u, v, w, startX, startY, startZ)

用 streamline 可视化向量场的三维体。返回变量 lineobj 中的线条对象,以便以后可以更改其属性。

lineobj = streamline(verts);

要更改特定线条的各个方面,请对返回的线条对象之一设置属性。例如,将第十个线条的颜色更改为绿色,将其粗细更改为 3。

lineobj[10].set_color("g")
lineobj[10].set_linewidth(3)
计算二维流线图

加载 wind 数据集,其中包含北美地区的气流测量值。

  • 三维数组 x 和 y 表示气流测量值的位置;
  • 三维数组 u 和 v 表示三维向量场中气流的速度。

使用数组的第五页。定义四个假想粒子的起始位置。在本例中,四个起始位置是 (80, 20)、(80, 30)、(80, 40) 和 (80, 50)。

using TyPlot
using TyBase
pkg_dir = pkgdir(TyPlot)
source_path = pkg_dir * "/examples/数据文件/wind.jl"
include(source_path)

x5 = x[:,:,5];
y5 = y[:,:,5];
u5 = u[:,:,5];
v5 = v[:,:,5];
startX,startY = meshgrid2([80],20:10:50);

用 stream2 计算放入气流中的假想粒子的二维流线图顶点数据。

verts = stream2(x5,y5,u5,v5,startX,startY);

通过调用 streamline 可视化二维向量场矩阵。返回变量 lineobj 中的线条对象,以便以后可以更改其属性。

lineobj = streamline(verts);

要更改特定线条的各个方面,请对返回的线条对象之一设置属性。例如,将第二个线条的颜色更改为品红色,将其线型更改为虚线。

lineobj[2].set_color("m")
lineobj[2].set_linestyle("--")
从顶点绘制流线图

加载 wind 数据集并计算从平面 x = 80 上的等距点开始的流线图的顶点。然后,基于顶点数据绘制流线图。

using TyPlot
using TyBase
pkg_dir = pkgdir(TyPlot)
source_path = pkg_dir * "/examples/数据文件/wind.jl"
include(source_path)

startX, startY, startZ = meshgrid3([80], 20:10:50, 0:5:15)
verts = stream3(x,y,z,u,v,w,startX,startY,startZ);
streamline(verts)

# 输入参数

X - 向量数据的 x 坐标
二维数组 | 三维数组

向量数据的 x 轴坐标,指定为二维或三维数组,可以与 Y(以及可选的 Z)组合形成坐标网格。您可以使用 meshgrid3 函数创建这些数组。

X 必须与 Y、Z、U、V 和 W 大小相同。

Y - 向量数据的 y 坐标
二维数组 | 三维数组

向量数据的 y 轴坐标,指定为二维或三维数组,可以与 X(以及可选的 Z)组合形成坐标网格。您可以使用 meshgrid3 函数创建这些数组。

Y 必须与 X、Z、U、V 和 W 大小相同。

Z - 向量数据的 z 坐标
三维数组

向量数据的 z 轴坐标,指定为三维数组,可以与 X 和 Y 组合形成坐标网格。您可以使用 meshgrid3 函数创建这些数组。

Z 必须与 X、Y、U、V 和 W 大小相同。

U - x 分量
二维数组 | 三维数组

向量数据的 x 分量,指定为二维或三维数组。U 的大小必须与 X、Y、Z、V 和 W 相同。

V - y 分量
二维数组 | 三维数组

向量数据的 y 分量,指定为二维或三维数组。V 的大小必须与 X、Y、Z、U 和 W 相同。

W - z 分量
三维数组

向量数据的 z 分量,指定为三维数组。W 的大小必须与 X、Y、Z、U 和 V 相同。

startX - x 轴流线图的起始位置
标量 | 向量 | 矩阵

x 轴流线图起始位置,指定为向量或矩阵。startX 必须为标量,或大小与 startY 和 startZ 相同。

startY - y 轴流线图的起始位置
标量 | 向量 | 矩阵

y 轴流线图起始位置,指定为向量或矩阵。startY 必须为标量,或大小与 startX 和 startZ 相同。

startZ - z 轴流线图的起始位置
标量 | 向量 | 矩阵

z 轴流线图起始位置,指定为向量或矩阵。startZ 必须为标量,或大小与 startX 和 startY 相同。

verts - 流线图的顶点
矩阵

流线图的顶点,指定为数组(由 stream2stream3 返回)。数组的每个元素均为一个线条的顶点矩阵。

options - 流线图选项
[0.1, 10000] (默认) | 一元素向量 | 二元素向量

流线图选项,指定为一元素向量或二元素向量,采用以下形式之一:

  • step
  • [step,maxvert]

step 是用于调整流线图分辨率和确定进行流线图速度插值的顶点位置的步长。maxvert 是在计算完成之前为流线图计算的最大顶点数。

默认步长为 0.1,默认最大顶点数为 10,000。

ax - 目标坐标区
Axes 对象

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 streamline 函数使用当前坐标区。

# 另请参阅

stream2 | stream3 | meshgrid2 | meshgrid3