MATLAB中plot3函数用法

目录

语法

说明

向量和矩阵数据

表数据

其他选项

示例

绘制三维螺旋图

绘制多个线条

使用矩阵绘制多个线条

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

将点绘制为不带线的标记

自定义颜色和标记

指定线型

在绘图后修改线条

绘制表中的数据

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

指定目标坐标区

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

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


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

语法

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(tbl,xvar,yvar,zvar)
plot3(ax,___)
plot3(___,Name,Value)
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。

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)

如图所示:

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

绘制多个线条

        创建两组 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)

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

使用矩阵绘制多个线条

创建包含三行 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)

如图所示:

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

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

        创建向量 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)')

如图所示:

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

将点绘制为不带线的标记

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

t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
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 磅圆形标记的蓝线。使用十六进制颜色代码指定标记的填充颜色为浅蓝色。

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

如图所示:

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

指定线型

        创建向量 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,'--')

如图所示:

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

在绘图后修改线条

        创建向量 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);

如图所示:

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,并将向量放在一个表中。然后显示该表的前三行。

t = (0:pi/20:10*pi)';
x = sin(t);
y = cos(t);
tbl = table(x,y,t);
head(tbl,3)x          y          t   _______    _______    _______0          1          00.15643    0.98769    0.157080.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 属性。例如,将线条更改为具有圆形标记的红色点线。

p.LineStyle = ":";
p.Color = "red";
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 开始

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

t = (0:pi/500:pi)';
x1 = sin(t).*cos(10*t);
x2 = sin(t).*cos(12*t);
y1 = sin(t).*sin(10*t);
y2 = sin(t).*sin(12*t);
z = cos(t);
tbl = table(x1,x2,y1,y2,z);
head(tbl,3)x1           x2            y1            y2           z   _________    _________    __________    __________    _______0            0             0             0          10.0062707    0.0062653    0.00039452    0.00047329    0.999980.012467     0.012423     0.0015749     0.0018877    0.99992

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

plot3(tbl,["x1","x2"],["y1","y2"],"z")
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 的第一个参数,在坐标区中创建单独的线图。

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')

如图所示:

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 为由随机的持续时间值组成的向量。

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

如图所示:

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 个数据点上放置一个标记。

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)

如图所示:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149012.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

10.2 调试事件获取DLL装载

理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知…

Qt扫盲-QSqlTableModel理论总结

QSqlTableModel理论总结 一、概述二、使用1. 与 view 视图绑定2. 做中间层,不显示 三、常用函数 一、概述 QSqlTableModel是用于从单个表读写数据库记录的高级接口。它构建在较低级的QSqlQuery之上,可用于向QTableView 等视图类提供数据。这个主要是对单…

苹果V3签名是什么?优势是什么?什么场合需要应用到?该怎么部署?

v3签名,或称为Apple Developer Program v3签名,是苹果公司在2021年6月推出的一种签名格式,用于对应用程序进行签名和验证。 它是取代了之前的v2签名格式,用于增强应用程序的安全性和完整性。 v3签名能够做到以下几点:…

【Linux基础】Linux发展史

👉系列专栏:【Linux基础】 🙈个人主页:sunny-ll 一、前言 本篇主要介绍Linux的发展历史,这里并不需要我们掌握,但是作为一个合格的Linux学习者与操作者,这些东西是需要了解的,而且…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(五)

思维导图 Bom操作 一、Window对象 1.1 BOM(浏览器对象模型) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vi…

k8s集群-6(daemonset job cronjob控制器)

Daemonset 一个节点部署一个节点 当有节点DaemonSet 确保全部 (或者某些) 节点上运行一个 Pod 的副本。加入集群时&#xff0c;也会为他们新增一个 Pod 。当有节点从集群移除时&#xff0c;这些Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet 的典型用…

Boost程序库完全开发指南:1.1-C++基础知识点梳理

主要整理了N多年前&#xff08;2010年&#xff09;学习C的时候开始总结的知识点&#xff0c;好长时间不写C代码了&#xff0c;现在LLM量化和推理需要重新学习C编程&#xff0c;看来出来混迟早要还的。 1.shared_ptr 解析&#xff1a;shared_ptr是一种计数指针&#xff0c;当引…

数字电路逻辑与设计 之循环码和 移存码

有发现错误的能力&#xff0c;不能纠正 只能检查单次的错误&#xff0c;不能完全抗干扰 可以按照上面的方法来循环构造 移存码可以通过前推后推来实现

pycharm配置python3.8版本专门用于undecteded_chromedriver测试

pycharm配置python3.8版本专门用于undecteded_chromedriver测试 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://pay.xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、Pycharm及python环境的配置 1.安装python-3.8.7rc1-amd64.e…

MySQL进阶_3.性能分析工具的使用

文章目录 第一节、数据库服务器的优化步骤第二节、查看系统性能参数第三节、 慢查询日志第四节、 查看 SQL 执行成本第五节、 分析查询语句&#xff1a;EXPLAIN5.1 基本语法5.2 EXPLAIN各列作用 第一节、数据库服务器的优化步骤 当我们遇到数据库调优问题的时候&#xff0c;可…

十三、Django之添加用户(原始方法实现)

修改urls.py path("user/add/", views.user_add),添加user_add.html {% extends layout.html %} {% block content %}<div class"container"><div class"panel panel-default"><div class"panel-heading"><h3 c…

全志ARM926 Melis2.0系统的开发指引①

全志ARM926 Melis2.0系统的开发指引① 1. 编写目的2. Melis2.0 系统概述3. Melis2.0 快速开发3.1. Melis2.0 SDK 目录结构3.2. Melis2.0 编译环境3.3. Melis2.0 固件打包3.4. Melis2.0 固件烧录3.5.串口打印信息3.6. Melis2.0 添加和调用一个模块3.6.1. 为什么划分模块&#xf…

[GWCTF 2019]枯燥的抽奖

参考 https://www.cnblogs.com/AikN/p/15764428.html [GWCTF 2019]枯燥的抽奖-CSDN博客 打开环境 笑死我了&#xff0c;怎么那么像我高中校长 查看源代码 看到check.php&#xff0c;去访问一下 ok看到源代码了 因为上次做过&#xff0c;看到这个我就想到用php_mt_seed逆推…

【Hello Linux】多路转接之 epoll

本篇博客介绍&#xff1a; 多路转接之epoll 多路转接之epoll 初识epollepoll相关系统调用epoll的工作原理epoll服务器编写成员变量构造函数 循环函数HandlerEvent函数epoll的优缺点 我们学习epoll分为四部分 快速理解部分概念 快速的看一下部分接口讲解epoll的工作原理手写epo…

解决ASP.NET Core的中间件无法读取Response.Body的问题

概要 本文主要介绍如何在ASP.NET Core的中间件中&#xff0c;读取Response.Body的方法&#xff0c;以便于我们实现更多的定制化开发。本文介绍的方法适用于.Net 3.1 和 .Net 6。 代码和实现 现象解释 首先我们尝试在自定义中间件中直接读取Response.Body&#xff0c;代码如…

Arcgis提取玉米种植地分布,并以此为掩膜提取遥感影像

Arcgis提取玉米种植地分布上&#xff0c;并以此为掩膜提取遥感影像 一、问题描述 因为之前反演是整个研究区&#xff0c;然而土地利用类型有很多类&#xff0c;只在农田或者植被上进行反演&#xff0c;需要去除水体、建筑等其他类型&#xff0c;如何处理得到下图中只有耕地类…

Javascript 事件的动态绑定

动态绑定事件&#xff0c;是指在代码执行过程中&#xff0c;通过Javascript代码来绑定事件。这种技术可以大大增强网页的交互性和用户体验。上一期介绍的是通过事件监听器 EventListener 去实现元素颜色的变化。这一期将通过动态绑定方法去实现&#xff0c;对象.事件 匿名函数…

常见服务器运维管理面板整理汇总

随着云计算技术的发展和普及&#xff0c;越来越多的用户开始使用云服务器来部署和运行应用程序和服务。为了方便用户管理和操作云服务器&#xff0c;各种类型的服务器管理面板应运而生。本文将整理和汇总一些常见的服务器管理面板&#xff0c;供用户参考选择。 1、宝塔面板【官…

AWS Lambda Golang HelloWorld 快速入门

操作步骤 以下测试基于 WSL2 Ubuntu 22.04 环境 # 下载最新 golang wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz# 解压 tar -C ~/.local/ -xzf go1.21.1.linux-amd64.tar.gz# 配置环境变量 PATH echo export PATH$PATH:~/.local/go/bin >> ~/.bashrc …

springboot 集成 PageHelper 分页失效

前言 项目启动初期&#xff0c;在集成mybatis的分页插件&#xff0c;自定义封装了一个分页的工具类&#xff0c;方便后期项目的扩展。部分的代码如下&#xff1a; /*** 分页查询* 进行count计算** param pageNum 页数* param pageSize 每页数量* param supplier 查询操作* re…