Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

streamparticles

绘制流粒子

    说明

    示例

    streamparticles(verts) 在向量场流线图的每个顶点上绘制流粒子。流粒子可以显示流线图的位置和速度。

    示例

    streamparticles(verts,n) 使用 n 来确定要绘制多少个流粒子。n 可以表示粒子的数量或流线图顶点的百分比。您可以将 ParticleAlignment 名称-值参量与此语法结合使用,以更改 streamparticles 使用 n 的方式。

    示例

    streamparticles(___,Name,Value) 通过使用一个或多个名称-值参量设置属性来修改流粒子动画和外观。例如,您可以使用 Marker 属性设置粒子的形状。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅 Line 属性

    streamparticles(target,___) 使用目标对象创建流粒子图。如果目标对象是 Axes 对象,则 MATLAB® 在指定的坐标区中而不是当前坐标区 (gca) 中绘图。如果目标对象是 Line 对象,则更新线条属性以创建流粒子,而不是创建新 Line 对象。

    lineobj = streamparticles(___) 返回包含所有粒子顶点的 Line 对象。

    示例

    全部折叠

    创建两条流线图的顶点,指定为 15×2 矩阵中的 xy 坐标。将 streamparticles 的顶点输入定义为元胞数组,其中每个元素表示一条流线。

    x = linspace(0,2*pi,15);
    y1 = sin(x); 
    y2 = sin(x) + 1;
    
    s1 = [x;y1]';
    s2 = [x;y2]';
    verts = {s1,s2};

    在流线图的每个顶点上绘制粒子。

    streamparticles(verts);

    Figure contains an axes object. The axes contains a line object which displays its values using only markers.

    使用位置和速度矩阵定义一个向量场。使用 streamslice 生成向量场中流线图的顶点,并将顶点存储在 verts 中。

    [x,y] = meshgrid(-10:10);
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);

    streamline 绘制流线图。然后,用 streamparticles 绘制 100 个粒子。默认情况下,粒子均匀分布在所有顶点上。

    streamline(verts);
    streamparticles(verts,100);

    Figure contains an axes object. The axes object contains 64 objects of type line. One or more of the lines displays its values using only markers

    对于同一个向量场,通过将 ParticleAlignment 属性设置为 "on",在具有最多顶点的流线图上均匀绘制五个粒子。streamparticles 函数使用该间距在其余流线图上绘制粒子。

    streamline(verts);
    streamparticles(verts,5,"ParticleAlignment","on");

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

    对于同一个向量场,将 5% 的流线图顶点绘制为粒子。

    streamline(verts);
    streamparticles(verts,0.05);

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

    创建向量场的顶点,并绘制其流线图和流粒子。通过分别设置 AnimateFrameRate 属性,以每秒 30 帧的速度为粒子设置五次迭代的动画。

    [x,y] = meshgrid(-10:10);
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);
    
    streamline(verts);
    streamparticles(verts,100,"Animate",5,"FrameRate",30);

    Figure contains an axes object. The axes object contains 64 objects of type line. One or more of the lines displays its values using only markers

    创建向量场的顶点,并绘制其流线图和流粒子。通过设置 Marker 和 MarkerEdgeColor 属性,对粒子使用绿色星号标记。

    [x,y] = meshgrid(-10:10); 
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);
    
    streamline(verts);
    streamparticles(verts,150,"Marker","*","MarkerEdgeColor",[0 0.5 0]);

    Figure contains an axes object. The axes object contains 64 objects of type line. One or more of the lines displays its values using only markers

    输入参数

    全部折叠

    流线图坐标数据,指定为元胞数组(由 stream2stream3streamslice 返回)。元胞数组的每个元素是定义一个流线图的二维或三维顶点的矩阵,其中每行表示一个粒子的坐标。

    流粒子的数量,指定为正值。

    • 如果 n 大于 1,则 streamparticles 绘制大约 n 个粒子。

    • 如果 n 小于或等于 1,则 streamparticles 将一定百分比的顶点绘制为粒子。例如,如果 n0.2,则 streamparticles 绘制大约 20% 的顶点。

    默认情况下,streamparticles 在所有流线图顶点上均匀绘制由 n 确定的粒子数。但是,如果将 ParticleAlignment 属性设置为 "on"streamparticles 会在顶点最多的流线图上均匀绘制粒子,然后将该粒子间距用于其他流线图。

    目标对象,指定为 AxesLine 对象。

    • Axes 对象 - streamparticles 在指定坐标区而不是当前坐标区中绘图。

    • Line 对象 - 更新线条属性以创建流粒子,而不是创建新 Line 对象。

    您可以在 streamparticles 图中显示图例,方法是创建一个 Line 对象,调用 legend,然后以该行作为目标对象调用 streamparticles

    名称-值参数

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

    示例: streamparticles(verts,MarkerFaceColor="blue") 为流粒子指定蓝色标记。

    在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

    示例: streamparticles(verts,"MarkerFaceColor","blue") 为流粒子指定蓝色标记。

    注意

    此处列出的线条属性只是可以更改粒子外观的部分属性。有关完整列表,请参阅 Line 属性

    动画迭代次数,指定为非负整数。默认情况下,Animate 的值为 0,这表示没有流粒子运动。如果值为 Inf,动画将继续,直到您按下 Ctrl+C

    每秒动画帧数,指定为非负整数。默认情况下,FrameRate 的值为 Inf,它会尽可能快地绘制动画,具体速度取决于运行 streamparticles 的计算机的限制。

    流线图上粒子的对齐,指定为 "off""on"

    • 如果 ParticleAlignment"off",则 n 确定在所有流线图顶点上均匀分布的粒子数。

    • 如果 ParticleAlignment"on",则 n 确定在顶点最多的流线图上均匀分布的粒子数。streamparticles 函数使用此间距在其余流线图上绘制粒子。

    标记符号,指定为下表中列出的值之一。默认情况下,粒子显示为圆形。如果标记符号没有填充面,例如 "*",则必须指定标记的边缘颜色。

    标记描述生成的标记
    "o"圆圈

    Sample of circle marker

    "+"加号

    Sample of plus sign marker

    "*"星号

    Sample of asterisk marker

    "."

    Sample of point marker

    "x"叉号

    Sample of cross marker

    "_"水平线条

    Sample of horizontal line marker

    "|"垂直线条

    Sample of vertical line marker

    "square"方形

    Sample of square marker

    "diamond"菱形

    Sample of diamond marker

    "^"上三角

    Sample of upward-pointing triangle marker

    "v"下三角

    Sample of downward-pointing triangle marker

    ">"右三角

    Sample of right-pointing triangle marker

    "<"左三角

    Sample of left-pointing triangle marker

    "pentagram"五角形

    Sample of pentagram marker

    "hexagram"六角形

    Sample of hexagram marker

    "none"无标记不适用

    标记轮廓颜色,指定为 "none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,没有标记轮廓颜色。

    RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

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

    • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#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

    以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

    RGB 三元组十六进制颜色代码外观
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    标记填充颜色,指定为 "red""none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,标记填充颜色为红色。

    RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

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

    • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#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

    以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

    RGB 三元组十六进制颜色代码外观
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    扩展功能

    版本历史记录

    在 R2006a 之前推出