主要内容

streamline

R2026b

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

  • Three-dimensional space with plotted streamlines

描述

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 或 streamslice 返回)。

示例

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

streamline(___,Name=Value) 使用一个或多个名称-值参量设置流线图的属性。例如,您可以指定流线图的颜色和粗细。有关属性列表,请参阅 Line 属性。 (自 R2024b 起)

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

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

示例

示例

全部折叠

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

  • 三维数组 x、y 和 z 表示气流测量值的位置。

  • 三维数组 u、v 和 w 表示三维向量场中气流的速度。

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

load wind
[startX,startY,startZ] = meshgrid(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);
view(3)

Figure contains an axes object. The axes object contains 16 objects of type line.

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

lineobj(10).Color = "g";
lineobj(10).LineWidth = 3;

Figure contains an axes object. The axes object contains 16 objects of type line.

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

  • 三维数组 x 和 y 表示气流测量值的位置。

  • 三维数组 u 和 v 表示三维向量场中气流的速度。

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

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

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

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

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

lineobj = streamline(verts);

Figure contains an axes object. The axes object contains 4 objects of type line.

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

lineobj(2).Color = "m";
lineobj(2).LineStyle = "--";

Figure contains an axes object. The axes object contains 4 objects of type line.

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

load wind
[startX,startY,startZ] = meshgrid(80,20:10:50,0:5:15);
verts = stream3(x,y,z,u,v,w,startX,startY,startZ);
streamline(verts)
axis tight
view(3);

Figure contains an axes object. The axes object contains 16 objects of type line.

输入参数

全部折叠

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

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

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

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

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

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

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

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

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

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

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

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

流线图的顶点,指定为元胞数组(由 stream2、stream3 或 streamslice 返回)。元胞数组的每个元素均为一个线条的顶点矩阵。

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

  • step

  • [step,maxvert]

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

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

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

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: streamline(verts,LineWidth=2) 绘制一个线条粗细为两磅的流线图。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 Line 属性。

线条颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。

  • 十六进制颜色代码是字符串标量或字符向量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。这些值不区分大小写。因此,颜色代码 "#FF8800" 与 "#ff8800"、"#F80" 与 "#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

下表列出了浅色和深色主题中绘图的默认调色板。

调色板调色板颜色

"gem" - 浅色主题默认值

在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。

Sample of the "gem" color palette

"glow" - 深色主题默认值

Sample of the "glow" color palette

您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。

在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。

线型,指定为下表中列出的选项之一。

线型描述表示的线条
"-"实线

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

Sample of dash-dotted line, with alternating dashes and dots

"none"无线条无线条

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开