Matlab论文插图绘制模板第68期—三角曲面图(Trisurf)

在之前的文章中,分享了Matlab曲面图的绘制模板:

以及一些特殊形式的曲面图

 

这一次,再来分享一种特殊的曲面图:三角曲面图

先来看一下成品效果:

特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友


模板中最关键的部分内容

1. 数据准备

此部分主要是读取原始数据

% 读取数据load data.mat[x,y] = meshgrid(xi,yi);inter1 = 1:7:243;inter2 = 1:7:255;X = x(inter1,inter2);Y = y(inter1,inter2);Z = DSM(inter1,inter2);

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具SCI权威配色库中的渐变色

%% 颜色定义map = TheColor('sci',2061);% map = flipud(map);

(点击上图查看TheColor具体功能)

获取方式:公众号(阿昆的科研日常)后台回复 TC

3. 三角曲面图绘制

使用‘trisurf’命令,绘制未经美化的三角曲面图

T = delaunay(X,Y);% 三角剖分trisurf(T,X,Y,Z,'linewidth',0.5)hTitle = title('Trisurf Plot');hXLabel = xlabel('x');hYLabel = ylabel('y');hZLabel = zlabel('z');view(-62,60)

4. 细节优化

为了插图的美观,将三角曲面图赋上之前选择的颜色

% 赋色colormap(map)colorbar

然后,对坐标轴细节等进行美化:

% 坐标区调整axis tightset(gca, 'Box', 'off', ...                                                          % 边框         'LineWidth', 1, 'GridLineStyle', '-',...                                   % 坐标轴线宽         'XGrid', 'on', 'YGrid', 'on', 'ZGrid', 'on',...                            % 网格         'TickDir', 'out', 'TickLength', [.01 .01], ...                             % 刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1],'ZColor', [.1 .1 .1])          % 坐标轴颜色% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 11)set([hXLabel,hYLabel,hZLabel], 'FontName',  'Arial', 'FontSize', 11)set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])

设置完毕后,以期刊所需分辨率、格式输出图片。

%% 图片输出figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figW figH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

也可以尝试其他配色:

以上。

完整代码:

Matlab三角曲面图绘制模板

### MATLAB `trisurf` 函数使用教程 #### 一、函数简介 `trisurf` 是 MATLAB 中用于绘制三角形表面图的函数。此函数接受顶点坐标和连接这些顶点形成三角面片的方式作为输入参数,进而创建三维空间中的网格化表面。 #### 二、基本语法结构 最简单的调用形式如下所示: ```matlab trisurf(Tri,X,Y,Z,C) ``` 其中: - Tri 表示由 N×3 的矩阵构成的三角剖分数据; - X, Y 和 Z 分别代表节点坐标的向量; - C 则是用来定义颜色的数据,可以是指定每一点的颜色值或者是用来映射到当前色彩条目的索引[^1]。 #### 三、实例展示 为了更好地理解如何应用 `trisurf` 绘制图像,这里给出一个具体的例子。假设要在一个单位球体上随机分布一些点并基于 Delaunay 三角剖分构建其表面模型,则可以通过以下代码实现: ```matlab % 创建随机分布在单位球面上的点集 numPoints = 100; theta = rand(numPoints, 1)*pi; % 极角范围 [0, pi] phi = rand(numPoints, 1)*2*pi; % 方位角范围 [0, 2pi] x = cos(phi).*sin(theta); y = sin(phi).*sin(theta); z = cos(theta); tri = delaunay(x,y,z); % 计算Delaunay三角剖分 figure; trisurf(tri,x,y,z,'FaceColor','interp'); % 使用插值着色方式渲染表面 axis equal tight; view(3); colorbar on; title('Random Points Distributed On A Unit Sphere'); xlabel('X Axis'), ylabel('Y Axis'), zlabel('Z Axis'); ``` 这段脚本首先生成了一组位于单位球内部的随机位置,接着利用 `delaunay()` 对这组点进行了三角划分处理,最后通过 `trisurf()` 将所得的结果可视化出来。值得注意的是,在设置属性时选择了 `'FaceColor', 'interp'` 来让相邻两个面之间的过渡更加平滑自然。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值