MATLAB数学建模:数据图形可视化-三维绘图函数

这篇具有很好参考价值的文章主要介绍了MATLAB数学建模:数据图形可视化-三维绘图函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 绘制三维曲面

在 MATLAB 中, 我们可使用函数 surf 和 surfc 绘制三维曲面图. 调用格式如下:

surf(Z)
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(...,'PropertyName',PropertyValue)
surfc(...)
以矩阵 ZZZ 所指定的参数创建一个渐变的三维曲面. 坐标 $x = 1:n,\ \ y = 1:m, $ 其中 [m,n]=size(Z)[m,n] = size(Z)[m,n]=size(Z)
以 ZZZ 确定的曲面高度和颜色, 按照 X,YX,YX,Y 形成的格点矩阵, 创建一个渐变的三维曲面. X,YX,YX,Y 可为向量或矩阵, 若 X,YX,YX,Y 为向量, 则必须满足 m=size(X),n=size(Y),[m,n]=size(Z).m = size(X), n=size(Y), [m,n] = size(Z).m=size(X),n=size(Y),[m,n]=size(Z).
以 ZZZ 确定的曲面高度, CCC 确定的曲面颜色, 按 X,YX,YX,Y 形成的格点矩阵创建一个渐变的三维曲面.
设置曲面属性.
在曲面下绘制曲面的等高线.

注:

  1. 在图形窗口, 需要将图形属性 Render 设为 Painters, 才可以显示出坐标名称和图形标题.

  1. 图中可见, 球面被网格线分割成多块. 每一块可视为一块嵌在线条之间的补片, 这些线条和补片的渐变颜色可由命令 shading 所指定. 格式为:

shading faceted
shading flat
shading interp
默认值, 在绘制曲面时采用分层网格线.
不绘制线条, 补片颜色单一, 颜色平滑分布.
不绘制线条, 补片以插值加色, 颜色以插补式分布, 计算量更大.

[例]

绘制三维球体.

[X,Y,Z] = sphere(25);         %计算球体的三维坐标
subplot(1,3,1);
surf(X,Y,Z)                   %绘制球体的三维图形
xlabel('x');
ylabel('y');
zlabel('z');
title('Shading Facetd');subplot(1,3,2);
surf(X,Y,Z)                   
xlabel('x');
ylabel('y');
zlabel('z')
shading flat;
title('Shading Flat');subplot(1,3,3);
surf(X,Y,Z)                   
xlabel('x');
ylabel('y');
zlabel('z');
shading interp;
title('Shading Interp');

图形输出如下:

MATLAB数学建模:数据图形可视化-三维绘图函数

除了 surf 和 surfc 函数以外, 还可以使用下列函数绘制不同的三维曲面:

  1. 使用 sphere 函数绘制三维球面. 调用格式为:

[x,y,z] = sphere(n)     %n为球面的光滑程度, 默认值为20
  1. 使用 cylinder 函数绘制三维柱面. 调用格式为:

[x,y,z] = cylinder(R,n) 
%R为存放柱面各等间隔高度上半径的向量, n表示圆柱圆周上等间隔点个数, 默认为20.

2 生成栅格数据

栅格数据指按照网格单元的行列排列, 具有不同灰度或颜色的数据阵列. 每个单元的位置由其行列号定义, 所表示的实际位置含于栅格行列位置中. 数据组织中的每个数据表示事物或现象的非几何属性, 或指向其属性的指针.

在绘制网格曲面前, 必须先知道每个四边形顶点的三维坐标值. 绘制曲面的一般情况是: 先知道四边形每个顶点的二维坐标(x,y), 再利用某个函数公式计算出四边形各个顶点的 zzz 坐标.

此处使用的 (x,y)(x,y)(x,y) 二维坐标是一种栅格形的数据点, 可由 MATLAB 所提供的 meshgrid 函数产生. 调用格式为;

[X,Y] = meshgrid(x,y)

该命令功能是由 xxx 向量和 yyy 向量通过复制的方法产生绘制三维图形时所需的栅格数据: XXX 和 YYY 矩阵.

注:

  1. 向量 x,yx,yx,y 分别代表三维图形在 XXX 轴, YYY 轴方向上的取值数据点.

  1. x,yx,yx,y 分别是向量, 而 X,YX,YX,Y 是矩阵.

  1. 我们还可以使用函数 georasterref 命令绘制栅格数据. 调用格式如下;

R = georasterref()

[例]

使用地理栅格数据绘制经纬度曲线:

maps                       %查看当前可用的投影方式%% 导入数据:全球海岸线
load coast%% 绘图
axesm robinson
patchm(lat,long,'g');%% 设置属性
setm(gca);                  %查看当前可设置的所有图形坐标轴的属性
setm(gca,'Frame','on');     %使框架可见
getm(gca,'Frame');          %使用getm可以获取指定的图形坐标轴的属性
setm(gca,'Grid','on');      %打开网格
setm(gca,'MLabelLocation',180);         %标上经度刻度标签,每隔60度
setm(gca,'MeridianLabel','on');         %设置纬度刻度标签可见
setm(gca,'PLabelLocation',[-90:90:90]); %标上纬度刻度标签
setm(gca,'ParallelLabel','on');         %设置经度刻度标签可见
setm(gca,'MLabelParallel','south')      %将经度刻度标签放在下部(南方)
setm(gca,'Origin',[0,90,0]);            %设置地图中心位置和绕中心点的轴旋转角度

输出图形如下:

MATLAB数学建模:数据图形可视化-三维绘图函数

3 绘制网格曲面命令

MATLAB 中可通过 mesh 函数绘制三维网格曲面图. 该函数可生成指定的网线面和它的颜色. 函数调用格式如下:

mesh(X,Y,Z)
mesh(Z)
mesh(...,C)
mesh(..., PropertyName, PropertyValue, ...)
h = mesh(...)
绘制出颜色由 X,Y,ZX,Y,ZX,Y,Z 指定的网线面. 若 X,YX,YX,Y 均为向量, length(X) = n, length(Y) = m, [m,n] = size(Z) , 空间中的点 (X(j),Y(I),Z(I,j))(X(j),Y(I),Z(I,j))(X(j),Y(I),Z(I,j)) 为所绘制曲面网线的交点.
由[n,m]= size(Z) 得 X = 1:n, Y = 1:m, 其中 zzz 为定义在矩形划分区域上的单值函数.
用由矩阵 CCC 所指定的颜色绘制网线网格图.
对指定的属性 PropertyName 设定属性值 PropertyValue ,可在同一语句中对多个属性进行设置.
返回 surface 图形对象句柄.

函数 mesh 运算规则为:

  1. 确定数据 X,Y,ZX,Y,ZX,Y,Z 的范围. 可使用命令 axis 对当前轴的 XLinMode,YLinMode,ZLinMode 进行设置.

  1. 参量 CCC 的范围决定颜色的"刻度化程度".

  1. 网格图显示命令生成将 ZZZ 的数据值用当前色图表现出来的颜色值.

[例]

在 Descartes 坐标系中绘制下列函数的网格曲面图:

f(x,y)=sin(x2+y2)x2+y2f(x,y) = \frac{sin(\sqrt{x^{2} + y^{2}})}{\sqrt{x^{2} + y^{2}}}f(x,y)=x2+y2sin(x2+y2)

x = -8:0.5:8;
y = x;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
grid on

图形输出如下:

MATLAB数学建模:数据图形可视化-三维绘图函数

此外, MATLAB还有两个 mesh 函数的派生函数:

  1. meshc: 同时在 x−yx-yx−y 平面上绘制函数的等值线.

  1. meshz: 在网格图基础上, 在图形底部外侧绘制 zzz 轴边框线.

[例]

[X,Y] = meshgrid(-3:0.5:3);
Z = 2*X.^2 - 3*Y.^2;
subplot(2,2,1)
plot3(X,Y,Z)
title('plot3')
subplot(2,2,2)
mesh(X,Y,Z)
title('mesh')
subplot(2,2,3)
meshc(X,Y,Z)
title('meshc')
subplot(2,2,4)
meshz(X,Y,Z)
title('meshz')

图形输出如下;

MATLAB数学建模:数据图形可视化-三维绘图函数

4 隐藏线的显示和关闭

是否显示网格曲面的隐藏线会对图形显示效果产生一定影响. MATLAB 提供了相关控制命令 hidden , 调用这种命令的格式为 hidden on 或 hidden off, 用于开启/关闭网格曲面的隐藏线.

[例]

分别绘制有无隐藏线的函数:

f(x,y)=sin(x2+y2)x2+y2f(x,y) = \frac{sin(\sqrt{x^{2} + y^{2}})}{\sqrt{x^{2} + y^{2}}}f(x,y)=x2+y2sin(x2+y2)

网格曲面图.

x = -8:0.5:8;
y = x;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
subplot(1,2,1)
mesh(X,Y,Z)
grid on
hidden on
title('hidden on')
axis([-10 10 -10 10 -1 1])subplot(1,2,2)
mesh(X,Y,Z)
grid on
hidden off
title('hidden off')
axis([-10 10 -10 10 -1 1])

图形输出如下:文章来源地址https://www.toymoban.com/news/detail-458074.html

MATLAB数学建模:数据图形可视化-三维绘图函数

到了这里,关于MATLAB数学建模:数据图形可视化-三维绘图函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模美赛M奖速成系列】数据可视化(二)

    上一篇文章为大家分享了 山脊图和气泡图 的绘图方法与代码,这里学姐为继续为大家分享 百分比堆叠线条图和火山图 ,包含 matlab和python的完整代码 ,需要完整代码的同学看文章最后,另外,如果没有美赛经验想要获奖,欢迎咨询哦~ 百分比堆叠线条图是一种数据可视化工

    2024年01月19日
    浏览(48)
  • 【数学建模美赛M奖速成系列】数据可视化方法(一)

    最近开始更新一个新的系列科研绘图,在同一个竞赛下,大家都近乎相同的解题思路下。之所以能出现一等二等三等奖的区别很大部分都在于结果的可视化,为了能更好地帮助大家进行可视化,近期将专门推出一个可视化板块,推出各种好看实用的可视化图形。 也称为Joy P

    2024年01月16日
    浏览(43)
  • 数据分析课程设计(数学建模+数据分析+数据可视化)——利用Python开发语言实现以及常见数据分析库的使用

    目录 数据分析报告——基于贫困生餐厅消费信息的分类与预测 一、数据分析背景以及目标 二、分析方法与过程 数据探索性与预处理 合并文件并检查缺失值 2.计算文件的当中的值 消费指数的描述性分析 首先对数据进行标准化处理 聚类模型的评价 聚类模型的结果关联 利用决

    2024年02月12日
    浏览(56)
  • python数学建模--绘图动态可视化图表

    本博客的灵感来源自笔者最近研究的最优化问题 在使用 模拟退火算法、遗传算法 求二元函数最值的过程中,虽然笔者已经能够通过算法得到不错的结果,但是笔者还是比较好奇算法的执行过程中,变量是怎样更新的,显然可视化是一种很好的方法 在上一篇博客【python数学建

    2024年02月06日
    浏览(42)
  • Python爬虫教程篇+图形化整理数据(数学建模可用)

    1.写一个爬虫程序 2、爬取目标网站数据,关键项不能少于5项。 3、存储数据到数据库,可以进行增删改查操作。 4、扩展:将库中数据进行可视化展示。 首先我们根据要求找到一个适合自己的网站,我找的网站如下所示: 电影 / 精品电影_电影天堂-迅雷电影下载 (dygod.net)  

    2024年02月13日
    浏览(43)
  • 数学建模 | MATLAB数据建模方法--机器学习方法

    近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识或模型。 所以在建模比赛中, 只要数据量还

    2024年02月03日
    浏览(70)
  • (一)MATLAB数学建模——数据拟合

    目录 一、简介 二、多项式拟合 (一)指令介绍 (二)代码

    2024年02月11日
    浏览(60)
  • 【MATLAB 数学建模】 插值方法 数据拟合

    一维插值是一种在给定有限数据点集合的情况下,通过构建一个函数来近似估计这些数据点之间的值。它基于假设,在相邻数据点之间存在某种连续性或平滑性。 一维插值常用于曲线拟合、曲线重建和数据补全等应用中。其中最简单的一种插值方法是线性插值,即通过连接相

    2024年02月08日
    浏览(55)
  • 数学建模Matlab之数据预处理方法

    本文综合代码来自文章 作者通常首先判断是否具有异常值,因为如果有异常值的话,咱们就会剔除异常值,使其变成缺失值,然后再做缺失值处理会好很多。 对于上面的异常值检验法做讲解与扩展: 1. Mean 三倍标准差法(3σ原则) 描述 :在正态分布数据中,任何一个数值如

    2024年02月08日
    浏览(47)
  • MATLAB第九章_数据图形可视化

    目录 数据图形可视化 MATLAB图形窗口 函数绘制 一元函数绘制  二元函数绘图 数据图形绘制简介 离散数据可视化 连续函数可视化 二维绘图函数 基本绘图 快速方程式画图 特殊二维图形  三维绘图函数 绘制三维曲面 生成栅格数据 网格曲线绘制 隐藏线的显示和关闭        

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包