MATLAB绘图基础11:3D图形绘制

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



11.3D图形绘制
11.1 3D图概述
  • M A T L A B {\rm MATLAB} MATLAB 3 D {\rm 3D} 3D图主要有: 3 D {\rm 3D} 3D散点图、 3 D {\rm 3D} 3D线图、 3 D {\rm 3D} 3D曲面图、 3 D {\rm 3D} 3D柱状图、 3 D {\rm 3D} 3D条形图、 3 D {\rm 3D} 3D饼图、 3 D {\rm 3D} 3D气泡图;
  • 3 D {\rm 3D} 3D图形绘制几个关键步骤:
    • 构建表示三维数据的矩阵,即构建表示 x 、 y 、 z {\rm x、y、z} xyz三个方向数据的矩阵;
    • 选择合适的三维绘图函数,常用的三维绘图函数有: s u r f 、 m e s h 、 s c a t t e r 3 、 q u i v e r 3 {\rm surf、mesh、scatter3、quiver3} surfmeshscatter3quiver3等;
    • 设置坐标轴范围和三维视角,通过 x l a b e l 、 y l a b e l 、 z l a b e l {\rm xlabel、ylabel、zlabel} xlabelylabelzlabel设置坐标轴标签,通过 v i e w 、 a x i s {\rm view、axis} viewaxis设置三维视角;
    • 添加光照效果,通过 l i g h t {\rm light} light定义光源,使用 s h o w H i d d e n S u r f a c e s {\rm showHiddenSurfaces} showHiddenSurfaces属性来控制是否显示隐藏面;
    • 设置颜色映射,使用合适的颜色映射,突出表现三维图形的特点;
    • 添加标题及注释,使用 t i t l e 、 t e x t 、 l e g e n d {\rm title、text、legend} titletextlegend等添加说明文字;
    • 保存输出结果,可导出为图片文件或生成动画输出结果;
11.2 3D散点图
  • 3 D {\rm 3D} 3D散点图使用 x {\rm x} x轴、 y {\rm y} y轴、 z {\rm z} z轴表示三个不同的变量或维度,每个数据点由三个值确定,分别对应 x {\rm x} x轴、 y {\rm y} y轴、 z {\rm z} z轴上的位置;

  • 3 D {\rm 3D} 3D散点图帮助我们更好理解数据的分布、趋势和关系,适用于数据集中包含多个连续或数值型变量的情况;

  • 3 D {\rm 3D} 3D散点图常见的应用场景:

    • 数据挖掘和探索性数据分析,通过 3 D {\rm 3D} 3D散点图可以直观地观察样本点的分布,发现数据间的内在关系和聚类结构,高效完成特征选择、异常点检测等工作;
    • 多元统计分析, 3 D {\rm 3D} 3D散点图可同时展示多个变量,通过点的位置反映各维度的数值,有助于观察多个变量间的相关性,进行多元统计分析;
    • 轨迹和流场可视化,使用 3 D {\rm 3D} 3D散点图可视化对象的三维运动轨迹,或显示三维流场中的路径线;
  • 3 D {\rm 3D} 3D散点图基本绘制过程:

    % 3D散点图绘制函数基本语法:
    scatter3(x,y,z)
    scatter3(x,y,z,s,c)
    
    % x、y、z:三维坐标向量;
    % s:点的大小;
    % c:点的颜色;
    
    % ch11_01.m
    clear;
    clc;
    
    % 1.生成随机数据;
    x = rand(500, 1);
    y = rand(500, 1);
    z = rand(500, 1);
    
    figure;
    scatter3(x, y, z, 36, z);
    
    % 2.标签、标题、坐标轴范围;
    xlabel('xdata');
    ylabel('ydata');
    zlabel('zdata');
    title('3D散点图基本示例');
    axis([0 1 0 1 0 1]);
    
    % 3.设置视角角度、添加光照、颜色映射和颜色条;
    view(-30, 30);
    light('Style', 'local');
    colormap jet;
    colorbar;
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_01.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    1

11.3 3D线图
  • 3 D {\rm 3D} 3D线图通常用于显示在三个维度 ( X , Y , Z ) ({\rm X,Y,Z}) (X,Y,Z)上的数据趋势和关联性;

  • 3 D {\rm 3D} 3D线图主要应用于以下几个方面:

    • 轨迹可视化,可在三维空间中可视化对象的运动轨迹,如:飞机、气球的飞行路线、运动员的运行路线等;
    • 映射时间的变化趋势,沿着时间轴绘制三维曲线图,展示某一变量随时间的变化情况及趋势,如股票价格、气温变化等时间序列数据;
    • 显示空间路径,表示空间或地形中蜿蜒的路径,如:山路、河流、管道等的定量结构信息;
    • 功能关系的图像,绘制表示光滑功能关系的三维曲面,如:正弦曲线;
    • 线程的执行过程,使用 3 D {\rm 3D} 3D线图表示每个线程的执行过程及时间信息;
    • 医学动画,利用 3 D {\rm 3D} 3D折线构建人体器官或运动的图像,如:肌肉收缩过程;
    • 游戏设计,构建游戏道具中的三维机械动画,如:角色使用道具的动作;
  • 3 D {\rm 3D} 3D线图绘制基本过程:

    % ch11_02.m
    clear;
    clc;
    
    % 1.生成模拟随机数据;
    t = 0:0.01:10;
    x = sin(t) .* sin(t);
    y = cos(t) .* sin(t);
    z = t;
    
    % 2.绘制3D线图;
    figure;
    plot3(x, y, z, 'b', 'LineWidth', 2);
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D线图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_02.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    2

  • 3 D {\rm 3D} 3D线图基本示例 2 2 2

    % ch11_03.m
    clear;
    clc;
    
    % 1.生成模拟数据;
    t = 0:0.01:100;
    x = t .* t;
    y = sin(t) .* sin(t);
    z = 2 * t;
    
    % 2.绘制3D线图;
    figure;
    plot3(x, y, z, 'r', 'LineWidth', 2);
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D线图基本示例1');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_03.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    3

11.4 3D曲面图
  • 3 D {\rm 3D} 3D曲面图用于显示三维数据的表面形状和曲线;

  • 3 D {\rm 3D} 3D曲面图常见的应用场景:

    • 地形建模:用 3 D {\rm 3D} 3D曲面图来展示地形高度信息,建立数字高程模型;
    • 数学函数可视化:用 3 D {\rm 3D} 3D曲面图来展示多变量函数的高维数据;
    • 流体建模:用 3 D {\rm 3D} 3D曲面图来模拟流体的流动形式,建立计算流体动力学模型;
    • 医学图像:用 3 D {\rm 3D} 3D曲面图展示 M R I 、 C T {\rm MRI、CT} MRICT等医学扫描结果,可视化人体器官和组织结构;
    • 计算机图形学:用 3 D {\rm 3D} 3D曲面图表示三维模型的表面,用于计算机动画、游戏、虚拟现实等领域;
    • 气象气候学:建立三维气象变量的高度场分布,用 3 D {\rm 3D} 3D曲面图展示天气系统的结构;
    • 科学计算可视化:可视化复杂的物理、化学模拟过程,通过 3 D {\rm 3D} 3D曲面图直观呈现模拟结果;
    • 数据挖掘:对高维数据进行可视化分析,用 3 D {\rm 3D} 3D曲面图展示数据间的关系;
  • 3 D {\rm 3D} 3D曲面图绘制基本过程:

    % 曲面图函数surf语法格式:
    % surf(X, Y, Z)
    % X、Y:数据点矩阵,表示坐标网格;
    % Z:数据点矩阵,表示与每个(X,Y)坐标对应的高程或数值数据;
    
    % surf函数常见参数:
    % colormap:颜色映射;
    % shading:控制着色方式,'flat'或'interp';
    % edgecolor:设置曲面边缘的颜色;
    % facealpha:设置曲面的透明度;
    % caxis:指定颜色映射范围;
    
    % ch11_04.m
    clear;
    clc;
    
    % 1.生成随机数据;
    [x, y] = meshgrid(-100:0.1:100, -100:0.1:100);
    z = x.^2 - y.^2;
    
    % 2.绘制3D曲面图;
    figure;
    surf(x, y, z, 'FaceColor', 'interp', 'EdgeColor', 'none');
    colormap('parula');
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D曲面基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_04.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    4

  • 3 D {\rm 3D} 3D网格曲面图基本绘制过程:

    % ch11_05.m
    clear;
    clc;
    
    % 1.生成随机数据;
    [x, y] = meshgrid(-5:0.1:5, -5:0.1:5);
    z = x.^2 - y.^2;
    
    % 2.绘制3D网格曲面图;
    figure;
    mesh(x, y, z);
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D网格曲面基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_05.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    5

11.5 3D柱状图
  • 3 D {\rm 3D} 3D柱状图基本绘制过程:

    % ch11_06.m
    clear;
    clc;
    
    % 1.创建随机数据;
    data = rand(10, 12);
    
    % 2.创建3D柱状图;
    figure;
    bar3(data);
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D柱状图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6

11.6 3D条形图
  • 3 D {\rm 3D} 3D条形图绘制基本过程:

    % ch11_07.m
    clear;
    clc;
    
    % 1.创建随机数据;
    data = rand(10, 12);
    
    % 2.创建3D柱状图;
    figure;
    bar3h(data);
    
    % 3.标签、标题;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D柱状图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_07.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    7

11.7 3D饼图
  • 3 D {\rm 3D} 3D饼图绘制基本过程:

    % ch11_08.m
    clear;
    clc;
    
    % 1.创建随机数据;
    data = [35, 20, 18, 12, 10, 5];
    
    % 2.绘制3D饼图;
    figure;
    pie3(data);
    colormap('turbo');
    
    % 3.标题、图例;
    title('伏羲科技各部门人数占比');
    labels = {'研发部', '国际业务部', '国内业务部', '生产部', '人事部', '管理人员'};
    legend(labels, 'Location', 'BestOutside');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_08.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    8

11.8 3D气泡图
  • 3 D {\rm 3D} 3D气泡图用于表示三维数据集中的数据点,每个数据点由三个主要维度表示,使用气泡的大小表示一个附加的数值维度;

  • 3 D {\rm 3D} 3D气泡图常用于可视化复杂的多维数据,以显示数据点间的关系和趋势;

  • 3 D {\rm 3D} 3D气泡图包含的要素:

    • 三维坐标轴:三个坐标轴分别表示数据的不同维度,如: X {\rm X} X轴表示一个维度、 Y {\rm Y} Y轴表示第二个维度、 Z {\rm Z} Z轴表示第三个维度;
    • 数据点:每个数据点在三维空间中用一个气泡或球表示,气泡的位置由 X {\rm X} X坐标、 Y {\rm Y} Y坐标、 Z {\rm Z} Z坐标决定,气泡的大小表示第四个维度;
    • 气泡颜色:气泡颜色可表示另一个维度或属性,如使用不同颜色来表示数据点所属的类别;
  • 3 D {\rm 3D} 3D气泡图适合用于可视化复杂的数据集,如:市场分析、科学研究、工程领域等;

  • 3 D {\rm 3D} 3D气泡图基本绘制过程:

    % 3D气泡图语法格式:
    bubblechart3(X, Y, Z, S)
    
    % 参数说明:
    % X,Y,Z:表示数据点的三维坐标,分别是X轴、Y轴、Z轴的数据;
    % S:表示气泡的大小数据,用于表示每个数据点的大小;
    
    % ch11_09.m
    clear;
    clc;
    
    % 1.创建10个模拟数据;
    X = rand(1, 10);
    Y = rand(1, 10);
    Z = rand(1, 10);
    size = rand(1, 10);
    color = rand(1, 10);
    
    % 2.绘制3D气泡图;
    bubblechart3(X, Y, Z, size, color);
    
    % 3.标题、标签;
    xlabel('X轴');
    ylabel('Y轴');
    zlabel('Z轴');
    title('3D气泡图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch11_09.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    9

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssm148基于Spring MVC框架的在线电影评价系统设计与实现+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:在线电影评价系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本在线电影评价系…

激光slam学习笔记5---ubuntu2004部署运行fastlivo踩坑记录

背景:看看fastlivo论文,觉得挺有意思的,就本地部署跑跑看看效果。个人环境,ubuntu20.04。 一、概要 由于依赖比较多,个人构建工作空间,使用catkin_make编译 src├── FAST-LIVO├── livox_ros_driver…

12. 利用“文件组织”实现石头剪刀布小游戏

文章目录 概要整体架构流程技术名词解释小结 1. 概要 ~ Jack Qiao对米粒说:“前面咱们了解过“文件组织”,让我们利用“文件组织”来制作一个有趣的“石头、剪刀、布”小游戏。”举个栗子: > 程序随机生成一个选择(石头、剪刀…

VRT: 关于视频修复的模型

VRT: 关于视频修复的模型 1. 视频修复的背景与重要性背景介绍:重要性: 2. VRT的重要性和研究背景VRT的背景:VRT的重要性: 3. 视频修复概述3.1 定义与目标3.2 与单图像修复的区别3.3 对时间信息利用的需求 4. VRT模型详解4.1 整体框…

Stable Diffusion经典应用场景

🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&…

04 —— Webpack打包CSS代码

加载器css-loader :解析css代码 webpack 中文文档 | webpack中文文档 | webpack中文网 加载器style-loader:把解析后的css代码插入到DOM style-loader | webpack 中文文档 | webpack中文文档 | webpack中文网 准备css代码,放到src/login目…

springboot高校网上缴费综合务系统

摘 要 相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低运营人员成本,实现了高校网上缴费综合务系统的标准化、制度化、程序化的管理,有效地防止了高校网上缴费综合务的随意管理,提高了信息的处理速度和精确度&#x…

IDEA怎么定位java类所用maven依赖版本及引用位置

在实际开发中,我们可能会遇到需要搞清楚代码所用依赖版本号及引用位置的场景,便于排查问题,怎么通过IDEA实现呢? 可以在IDEA中打开项目,右键点击maven的pom.xml文件,或者在maven窗口下选中项目,…

springMVC重点知识

一、springMVC请求流程 二、springMVC环境搭建 Idea 下创建 springmvc01 ⼯程 1、pom.xml 坐标添加 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>12</maven.compiler.source> …

django基于python 语言的酒店推荐系统

摘 要 酒店推荐系统旨在提供一个全面酒店推荐在线平台&#xff0c;该系统允许用户浏览不同的客房类型&#xff0c;并根据个人偏好和需求推荐合适的酒店客房。用户可以便捷地进行客房预订&#xff0c;并在抵达后简化入住登记流程。为了确保连续的住宿体验&#xff0c;系统还提供…

机器学习笔记——30种常见机器学习算法简要汇总

本笔记介绍机器学习中常见的30种机器学习算法。 文章目录 监督学习算法&#xff08;Supervised Learning&#xff09;回归算法&#xff08;Regression Algorithms&#xff09;分类算法&#xff08;Classification Algorithms&#xff09; 无监督学习算法&#xff08;Unsupervis…

Vue3、Vite5、Primevue、Oxlint、Husky9 简单快速搭建最新的Web项目模板

Vue3、Vite5、Oxlint、Husky9 简单搭建最新的Web项目模板 特色进入正题创建基础模板配置API自动化导入配置组件自动化导入配置UnoCss接入Primevue接入VueRouter4配置项目全局环境变量 封装Axios接入Pinia状态管理接入Prerttier OXLint ESLint接入 husky lint-staged&#xf…

利用RAGflow和LM Studio建立食品法规问答系统

前言 食品企业在管理标准、法规&#xff0c;特别是食品原料、特殊食品法规时&#xff0c;难以通过速查法规得到准确的结果。随着AI技术的发展&#xff0c;互联网上出现很多AI知识库的解决方案。 经过一轮测试&#xff0c;找到问题抓手、打通业务底层逻辑、对齐行业颗粒度、沉…

百度智能云千帆大模型平台引领企业创新增长

本文整理自百度世界大会 2024——「智能跃迁 产业加速」论坛的同名演讲。 更多大会演讲内容&#xff0c;请访问&#xff1a; https://baiduworld.baidu.com 首先&#xff0c;跟大家分享一张图&#xff0c;这个是我们目前大模型应用落地的场景分布。可以看到&#xff0c;大模型…

人形机器人开发、XR仿真训练、影视动画制作,一副手套支持多种应用

近日&#xff0c;动作捕捉数据手套供应商Manus 推出了其最新产品Metagloves Pro。其最大特点是佩戴更加方便简洁且精度更高。Metagloves Pro功能强大且适用于多种应用场景&#xff0c;包括&#xff1a;人形机器人研究、XR仿真训练以及影视动画制作等。 一、人形机器人研究 Man…

sql server怎样用sql profiler捕获带变量值的慢sql

一 新建跟踪 点击工具-SQL Server Profiler&#xff1a; 点击文件-新建跟踪的按钮&#xff1a; 在‘事件选择’选项卡只选择如下两项内容&#xff08;RPC:Completed,SQL:BatchCompleted&#xff09;&#xff0c;把多余的取消勾选&#xff1a; 然后勾选上面截图中右下方的‘显示…

Linux中虚拟内存详解

一、虚拟内存的概念 虚拟内存是现代操作系统为了有效管理内存资源、提高内存利用率以及实现多任务处理等目的而引入的一种重要的内存管理机制。它为每个程序&#xff08;通常对应一个进程&#xff09;提供了一个看似连续且容量较大的地址空间&#xff0c;而这个地址空间并不一…

Qt、C++实现五子棋人机对战与本地双人对战(高难度AI,极少代码)

介绍 本项目基于 Qt C 实现了一个完整的五子棋游戏&#xff0c;支持 人机对战 和 人人对战 模式&#xff0c;并提供了三种难度选择&#xff08;简单、中等、困难&#xff09;。界面美观&#xff0c;逻辑清晰&#xff0c;是一个综合性很强的 Qt 小项目 标题项目核心功能 棋盘…

Vue非单文件组件

目录 Vue非单文件组件 几个注意点 组件的嵌套 关于VueComponent 重要的内置关系 Vue非单文件组件 Vue中使用组件的三大步骤&#xff1a; 一、定义组件(创建组件) 二、注册组件 三、使用组件(写组件标签) 一、…

关于C++地址交换的实现

关于地址的交换实现&#xff0c;我们要使用指针引用的方式进行&#xff0c;例如&#xff1a; #include <iostream>// 定义函数交换两个整型指针的地址 void swapIntPtrAddresses(int* &ptr1, int* &ptr2) {int *temp ptr1;ptr1 ptr2;ptr2 temp; }int main() …