Matlab三维绘图函数plot3用法

文章目录(展开/隐藏→)

展开
4.2
(6)

今天,给各位系统的介绍下 Matlab 中使用 plot3 绘图中的常见方法,主要包括三维螺旋图、多个三维线条绘制、三维矩阵绘制三维图、指定等间距刻度单位和轴标签、将点绘制为不带线的标记、自定义颜色和标记、指定线型、在绘图后修改线条、指定目标坐标区、使用自定义刻度格式绘制持续时间数据、绘制线条并在一个数据点上放置标记等常见用法。

Matlab三维绘图函数plot3用法

下面我们将开始非常详细的 Matlab plot3 函数语法介绍,实例引用,结果展示。首先,我们给出 Matlab 中关于 plot 函数的帮助文本如下:

>> help plot3
 plot3  Plot lines and points in 3-D space.
    plot3() is a three-dimensional analogue of PLOT().
  
    plot3(x,y,z), where x, y and z are three vectors of the same length,
    plots a line in 3-space through the points whose coordinates are the
    elements of x, y and z.
  
    plot3(X,Y,Z), where X, Y and Z are three matrices of the same size,
    plots several lines obtained from the columns of X, Y and Z.
  
    Various line types, plot symbols and colors may be obtained with
    plot3(X,Y,Z,s) where s is a 1, 2 or 3 character string made from
    the characters listed under the PLOT command.
  
    plot3(x1,y1,z1,s1,x2,y2,z2,s2,x3,y3,z3,s3,...) combines the plots
    defined by the (x,y,z,s) fourtuples, where the x's, y's and z's are
    vectors or matrices and the s's are strings.
  
    Example: A helix:
  
        t = 0:pi/50:10*pi;
        plot3(sin(t),cos(t),t);
  
    plot3 returns a column vector of handles to lineseries objects, one
    handle per line. The X,Y,Z triples, or X,Y,Z,S quads, can be 
    followed by parameter/value pairs to specify additional 
    properties of the lines.

常见语法

plot3(X,Y,Z)
plot3(X,Y,Z,LineSpec)
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
plot3(___,Name,Value)
plot3(ax,___)
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(___,Name,Value) 使用一个或多个名称-值对组参数指定 Line 属性。

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

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

三维螺旋图绘制

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

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)
Matlab三维绘图函数plot3用法

多个线条绘制

创建两组 xy 和 z 坐标。

t = 0:pi/500:pi;
xt1 = sin(t).*cos(10*t);
yt1 = sin(t).*sin(10*t);
zt1 = cos(t);
xt2 = sin(t).*cos(12*t);
yt2 = sin(t).*sin(12*t);
zt2 = cos(t);

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

plot3(xt1,yt1,zt1,xt2,yt2,zt2)
Matlab三维绘图函数plot3用法

使用矩阵绘制多个线条

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

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

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

Z = cos(t);

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

plot3(X,Y,Z)
Matlab三维绘图函数plot3用法

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

创建向量 xt、yt 和 zt。

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

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

plot3(xt,yt,zt)
axis equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')
Matlab三维绘图函数plot3用法

将点绘制为不带线的标记

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

t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,'o')
Matlab三维绘图函数plot3用法

自定义颜色和标记

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

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

Matalb无法使用自定义颜色值,我们需要把#D9FFFF改成black等颜色值。

Matlab三维绘图函数plot3用法

指定线型

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

t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
xt2 = sin(2*t);
yt2 = cos(2*t);

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

plot3(xt1,yt1,t,xt2,yt2,t,'--')
Matlab三维绘图函数plot3用法

在绘图后修改线条

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

t = linspace(-10,10,1000);
xt = exp(-t./10).*sin(5*t);
yt = exp(-t./10).*cos(5*t);
p = plot3(xt,yt,t);
Matlab三维绘图函数plot3用法

将线宽更改为 3。

p.LineWidth = 3;
Matlab三维绘图函数plot3用法

指定目标坐标区

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

tiledlayout(1,2)
% Left plot
ax1 = nexttile;
t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
plot3(ax1,xt1,yt1,t)
title(ax1,'Helix With 5 Turns')
% Right plot
ax2 = nexttile;
t = 0:pi/20:10*pi;
xt2 = sin(2*t);
yt2 = cos(2*t);
plot3(ax2,xt2,yt2,t)
title(ax2,'Helix With 10 Turns')

这一部分由于我还是2016版本的Matlab无法给出图片,可以参考官方的图片,文末会给出原文地址。

不过,我可以用subplot来实现这个功能:

% Left plot
subplot(1,2,1)
t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
plot3(xt1,yt1,t)
title('Helix With 5 Turns')
% Right plot
subplot(1,2,2)
t = 0:pi/20:10*pi;
xt2 = sin(2*t);
yt2 = cos(2*t);
plot3(xt2,yt2,t)
title('Helix With 10 Turns')
Matlab三维绘图函数plot3用法

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

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

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

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

plot3(x,y,z,'o','DurationTickFormat','mm:ss')
xlabel('X')
ylabel('Y')
zlabel('Duration')
grid on

Matlab2016中无 DurationTickFormat 这个功能

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

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

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

Matlab2016 中 Line 没有 MarkerIndices 的功能。

共计6人评分,平均4.2

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/program/matlab-plot-function-plot3.html

(3)
上一篇 2020年10月17日 21:55
下一篇 2020年10月18日 21:08

相关推荐

  • 使用Matlab实现离散数据的曲线拟合

    文章目录(展开/隐藏→) 展开数据来源拟合工具调用 4.5 (2) 今天,古哥带来如何使用Matlab快速拟合实验数据,得到这些数据所遵循的变换函数。这种方式,一般你需要大概知道自…

    2020年09月14日
    0245
  • Matlab通过函数绘制等高线图fcontour

    文章目录(展开/隐藏→) 展开常见用法语法说明绘制函数的等高线指定绘图区间并绘制分段等高线图更改线型和线宽绘制多个函数的等高线图创建后修改等高线图填充等高线之间的区域指定等高线的级…

    2021年01月20日
    0231
  • Matlab等高线图矩阵式绘制函数contour

    文章目录(展开/隐藏→) 展开常见用法语法说明函数的等高线二十个层级的等高线一个层级的等高线虚线等高线带标签的等高线自定义线宽不连续曲面上的等高线 4.3 (3) 今天,给各位带来…

    2021年01月08日
    0172
  • Matlab快速入门之显示图像

    文章目录(展开/隐藏→) 展开图像数据读取和写入图像 4.3 (3) 本文我们带来Matlab快速入门中图像处理的部分,当然只是简单介绍一下。我们需要知道的是Matlab中处理图像…

    2022年10月18日
    0109
  • Matlab快速入门之图形对象的处理

    文章目录(展开/隐藏→) 展开常见图形对象访问对象属性查找对象的属性设置对象属性设置现有对象的属性设置多个属性值用于处理对象的函数传递参数查找现有对象的句柄查找特定类型的所有对象查…

    2022年11月27日
    026
  • Matlab快速入门之桌面基础知识

    4.3 (3) 今天开始,分享一些Matlab入门的知识吧。本篇主要介绍一下Matlab软件启动后的操作窗口,一般情况下,打开的桌面,包括当前文件夹、详细信息、编辑器、命令行窗口、…

    2022年09月05日
    074
  • Matlab绘制极坐标函数图像ezpolar

    文章目录(展开/隐藏→) 展开常见用法语法说明数字函数的极坐标图创建 4.3 (4) 今天,带来关于Matlab极坐标中的最后一篇系列文章,本文讲解绘制极坐标函数图像的方法,所用到…

    2021年01月06日
    0295
  • Matlab快速入门之多变量数据

    4.3 (3) 今天,带来Matlab中关于多变量统计数据的分析方法,我们一般使用列向分析方法,每一列代表一个边栏,对应的观测值放于每一行上。 MATLAB® 对多变量统…

    2022年10月08日
    040
  • Matlab极坐标绘制散点图polarscatter

    文章目录(展开/隐藏→) 展开常见用法语法说明极坐标中创建散点图使用已填充标记并设置标记大小使用具有不同大小和颜色的标记绘图之前从度转换为弧度合并两个散点图创建散点图之后进行修改 …

    2020年12月28日
    01.0K
  • 如何短时间内在Excel中创建数据饼图

    文章目录(展开/隐藏→) 展开如何在Excel中制作饼图 4.3 (3) 今天,来给大家讲解如何在Excel中创建饼图。本文包括平面饼图的设计、三维饼图的设计,以及饼图颜色、饼图边…

    2021年04月24日 电脑技巧
    074

发表回复

登录后才能评论
本站APP
微信小程序