• MATLAB中plot3函数用法


    目录

    语法

    说明

    向量和矩阵数据

    表数据

    其他选项

    示例

    绘制三维螺旋图

    绘制多个线条

    使用矩阵绘制多个线条

    指定等间距刻度单位和轴标签

    将点绘制为不带线的标记

    自定义颜色和标记

    指定线型

    在绘图后修改线条

    绘制表中的数据

    在 x 和 y 轴上绘制多个表变量

    指定目标坐标区

    使用自定义刻度格式绘制持续时间数据

    绘制线条并在一个数据点上放置标记


            plot3函数的功能是绘制三维点或线图。

    语法

    1. plot3(X,Y,Z)
    2. plot3(X,Y,Z,LineSpec)
    3. plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
    4. plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
    5. plot3(tbl,xvar,yvar,zvar)
    6. plot3(ax,___)
    7. plot3(___,Name,Value)
    8. p = plot3(___)

    说明

    向量和矩阵数据

            plot3(X,Y,Z) 绘制三维空间中的坐标。

    • 要绘制由线段连接的一组坐标,请将 X、Y、Z 指定为相同长度的向量。

    • 要在同一组坐标轴上绘制多组坐标,请将 X、Y 或 Z 中的至少一个指定为矩阵,其他指定为向量。

            plot3(X,Y,Z,LineSpec) 使用指定的线型、标记和颜色创建绘图。

            plot3(X1,Y1,Z1,...,Xn,Yn,Zn) 在同一组坐标轴上绘制多组坐标。使用此语法作为将多组坐标指定为矩阵的替代方法。plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn) 可为每个 XYZ 三元组指定特定的线型、标记和颜色。您可以对某些三元组指定 LineSpec,而对其他三元组省略它。例如,plot3(X1,Y1,Z1,'o',X2,Y2,Z2) 对第一个三元组指定标记,但没有对第二个三元组指定标记。

    表数据

            plot3(tbl,xvar,yvar,zvar) 绘制表 tbl 中的变量 xvar、yvar 和 zvar。要绘制一个数据集,请为 xvar、yvar 和 zvar 各指定一个变量。要绘制多个数据集,请为其中至少一个参数指定多个变量。对于指定多个变量的参数,指定的变量数目必须相同。(自 R2022a 开始提供)

    其他选项

            plot3(ax,___) 在目标坐标区上显示绘图。将坐标区指定为上述任一语法中的第一个参数。

            plot3(___,Name,Value) 使用一个或多个名称-值对组参数指定 Line 属性。在所有其他输入参数后指定属性。

            p = plot3(___) 返回一个 Line 对象或 Line 对象数组。创建绘图后,使用 p 修改该绘图的属性。

    示例

    绘制三维螺旋图

            将 t 定义为由介于 0 和 10π 之间的值组成的向量。将 st 和 ct 定义为正弦和余弦值向量。然后绘制 st、ct 和 t。

    1. t = 0:pi/50:10*pi;
    2. st = sin(t);
    3. ct = cos(t);
    4. plot3(st,ct,t)

    如图所示:

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

    绘制多个线条

            创建两组 xy 和 z 坐标。

    1. t = 0:pi/500:pi;
    2. xt1 = sin(t).*cos(10*t);
    3. yt1 = sin(t).*sin(10*t);
    4. zt1 = cos(t);
    5. xt2 = sin(t).*cos(12*t);
    6. yt2 = sin(t).*sin(12*t);
    7. zt2 = cos(t);

    调用 plot3 函数,并指定连续的 XYZ 三元组。

    如图所示:

    plot3(xt1,yt1,zt1,xt2,yt2,zt2)

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

    使用矩阵绘制多个线条

    创建包含三行 x 坐标的矩阵 X。创建包含三行 y 坐标的矩阵 Y。

    1. t = 0:pi/500:pi;
    2. X(1,:) = sin(t).*cos(10*t);
    3. X(2,:) = sin(t).*cos(12*t);
    4. X(3,:) = sin(t).*cos(20*t);
    5. Y(1,:) = sin(t).*sin(10*t);
    6. Y(2,:) = sin(t).*sin(12*t);
    7. Y(3,:) = sin(t).*sin(20*t);

    创建矩阵 Z,其中包含所有三组坐标的 z 坐标。

    Z = cos(t);

    在同一组坐标轴上绘制所有三组坐标。

    plot3(X,Y,Z)

    如图所示:

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

    指定等间距刻度单位和轴标签

            创建向量 xt、yt 和 zt。

    1. t = 0:pi/500:40*pi;
    2. xt = (3 + cos(sqrt(32)*t)).*cos(t);
    3. yt = sin(sqrt(32) * t);
    4. zt = (3 + cos(sqrt(32)*t)).*sin(t);

            绘制数据,并使用 axis equal 命令沿每个轴等间距隔开刻度单位。然后为每个轴指定标签。

    1. plot3(xt,yt,zt)
    2. axis equal
    3. xlabel('x(t)')
    4. ylabel('y(t)')
    5. zlabel('z(t)')

    如图所示:

    Figure contains an axes object. The axes object with xlabel x(t), ylabel y(t) contains an object of type line.

    将点绘制为不带线的标记

    创建向量 t、xt 和 yt,并使用圆形标记绘制这些向量中的点。

    1. t = 0:pi/20:10*pi;
    2. xt = sin(t);
    3. yt = cos(t);
    4. plot3(xt,yt,t,'o')

    如图所示:

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

    自定义颜色和标记

            创建向量 t、xt 和 yt,并将这些向量中的点绘制为带 10 磅圆形标记的蓝线。使用十六进制颜色代码指定标记的填充颜色为浅蓝色。

    1. t = 0:pi/20:10*pi;
    2. xt = sin(t);
    3. yt = cos(t);
    4. plot3(xt,yt,t,'-o','Color','b','MarkerSize',10,...
    5. 'MarkerFaceColor','#D9FFFF')

    如图所示:

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

    指定线型

            创建向量 t。然后使用 t 计算两组 x 和 y 值。

    1. t = 0:pi/20:10*pi;
    2. xt1 = sin(t);
    3. yt1 = cos(t);
    4. xt2 = sin(2*t);
    5. yt2 = cos(2*t);

            绘制这两组值。第一组使用默认线条,第二组使用虚线。

    plot3(xt1,yt1,t,xt2,yt2,t,'--')

    如图所示:

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

    在绘图后修改线条

            创建向量 t、xt 和 yt,并绘制这些向量中的数据。返回输出变量 p 中的图线条。

    1. t = linspace(-10,10,1000);
    2. xt = exp(-t./10).*sin(5*t);
    3. yt = exp(-t./10).*cos(5*t);
    4. p = plot3(xt,yt,t);

    如图所示:

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

    将线宽更改为 3

    p.LineWidth = 3;

    如图所示:

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

    绘制表中的数据

    自 R2022a 开始

            基于表数据绘图的一种便捷方法是将表传递给 plot3 函数,并指定要绘制的变量。

            创建向量 x、y 和 t,并将向量放在一个表中。然后显示该表的前三行。

    1. t = (0:pi/20:10*pi)';
    2. x = sin(t);
    3. y = cos(t);
    4. tbl = table(x,y,t);
    5. head(tbl,3)
    6. x y t
    7. _______ _______ _______
    8. 0 1 0
    9. 0.15643 0.98769 0.15708
    10. 0.30902 0.95106 0.31416

    绘制 x、y 和 t 表变量。以 p 形式返回 Line 对象。请注意,轴标签与变量名称匹配。

    p = plot3(tbl,"x","y","t");

    如图所示:

    Figure contains an axes object. The axes object with xlabel x, ylabel y contains an object of type line.

            要修改线条的各个方面,请对 Line 对象设置 LineStyle、Color 和 Marker 属性。例如,将线条更改为具有圆形标记的红色点线。

    1. p.LineStyle = ":";
    2. p.Color = "red";
    3. p.Marker = "o";

    如图所示:

    Figure contains an axes object. The axes object with xlabel x, ylabel y contains an object of type line.

    在 x 和 y 轴上绘制多个表变量

    自 R2022a 开始

            创建一个包含五个变量的表。然后显示该表的前三行。

    1. t = (0:pi/500:pi)';
    2. x1 = sin(t).*cos(10*t);
    3. x2 = sin(t).*cos(12*t);
    4. y1 = sin(t).*sin(10*t);
    5. y2 = sin(t).*sin(12*t);
    6. z = cos(t);
    7. tbl = table(x1,x2,y1,y2,z);
    8. head(tbl,3)
    9. x1 x2 y1 y2 z
    10. _________ _________ __________ __________ _______
    11. 0 0 0 0 1
    12. 0.0062707 0.0062653 0.00039452 0.00047329 0.99998
    13. 0.012467 0.012423 0.0015749 0.0018877 0.99992

            在 x 轴上绘制 x1 和 x2 变量,在 y 轴上绘制 y1 和 y2 变量,在 z 轴上绘制 z 变量。然后,添加一个图例。请注意,图例条目与变量名称匹配。

    1. plot3(tbl,["x1","x2"],["y1","y2"],"z")
    2. legend

    如图所示:

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

    指定目标坐标区

            从 R2019b 开始,您可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建 1×2 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。通过将坐标区对象指定为 plot3 的第一个参数,在坐标区中创建单独的线图。

    1. tiledlayout(1,2)
    2. % Left plot
    3. ax1 = nexttile;
    4. t = 0:pi/20:10*pi;
    5. xt1 = sin(t);
    6. yt1 = cos(t);
    7. plot3(ax1,xt1,yt1,t)
    8. title(ax1,'Helix With 5 Turns')
    9. % Right plot
    10. ax2 = nexttile;
    11. t = 0:pi/20:10*pi;
    12. xt2 = sin(2*t);
    13. yt2 = cos(2*t);
    14. plot3(ax2,xt2,yt2,t)
    15. title(ax2,'Helix With 10 Turns')

    如图所示:

    Figure contains 2 axes objects. Axes object 1 with title Helix With 5 Turns contains an object of type line. Axes object 2 with title Helix With 10 Turns contains an object of type line.

    使用自定义刻度格式绘制持续时间数据

            创建 x 和 y 为由 0 和 1 之间的随机值组成的向量。创建 z 为由随机的持续时间值组成的向量。

    1. x = rand(1,10);
    2. y = rand(1,10);
    3. z = duration(rand(10,1),randi(60,10,1),randi(60,10,1));

            绘制 x、y 和 z,并将 z 轴的格式指定为分和秒。然后添加轴标签,并启用网格以使图框内的点更容易可视化。

    1. plot3(x,y,z,'o','DurationTickFormat','mm:ss')
    2. xlabel('X')
    3. ylabel('Y')
    4. zlabel('Duration')
    5. grid on

    如图所示:

    Figure contains an axes object. The axes object with xlabel X, ylabel Y contains a line object which displays its values using only markers.

    绘制线条并在一个数据点上放置标记

            创建向量 xt、yt 和 zt。绘制这些值,使用 LineSpec 参数指定具有圆形标记的实线。指定 MarkerIndices 属性以在第 200 个数据点上放置一个标记。

    1. t = 0:pi/500:pi;
    2. xt(1,:) = sin(t).*cos(10*t);
    3. yt(1,:) = sin(t).*sin(10*t);
    4. zt = cos(t);
    5. plot3(xt,yt,zt,'-o','MarkerIndices',200)

    如图所示:

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

  • 相关阅读:
    (Note)同比和环比
    kafka学习(七):消息队列与JMS
    2 任务2: 使用趋动云GPU进行猫狗识别实践
    后端高频面试题分享-用Java判断一个列表是否是另一个列表的顺序子集
    hudi系列-设置合理清理策略
    载均衡技术全解析:Pulsar 分布式系统的最佳实践
    JS笔记-数组方法【增删改查】
    MySQL——五、库表操作(上篇)
    方舟基础物品指令代码大全
    <Android开发> Android vold - 第二篇 vold 的main()函数简介
  • 原文地址:https://blog.csdn.net/jk_101/article/details/132851510