当前位置: 首页 > news >正文

Matlab进阶绘图第63期—带标记线的三维填充折线图

三维填充折线图是在三维折线图的基础上,对其与XOY平面之间的部分进行颜色填充,从而能够更好地刻画细节变化

而带标记线的三维填充折线图是在其基础上,添加X相同的一条或多条标记线,以用于进一步讨论分析。

由于Matlab中未收录带标记线的三维填充折线图的绘制函数,因此需要大家自行设法解决

本文使用自制的FilledPlot3withline小工具进行三维填充折线图的绘制,先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【全家桶】查看加入方式


1. 数据准备

此部分主要是读取原始数据,并初始化绘图参数

% 读取数据load data.mat% 初始化绘图参数xx = X;zz = Z;idx = [10 20 30]; % 标记线位置

2. 颜色定义

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

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

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

%% 颜色定义map = TheColor('sci',2068,'map',size(zz,2));% map = flipud(map);

3. 带标记线的三维填充折线图绘制

调用‘FilledPlot3withline’函数,绘制初始带标记线的三维填充折线图

[p,l] = FilledPlot3withLine(xx,zz,map,0.8,0.6,idx);hTitle = title('Extracted Spectra Subset');hXLabel = xlabel('Mass/Charge (M/Z)');hYLabel = ylabel('Samples');hZLabel = zlabel('Ion Spectra');view(-36,39)

4. 细节优化

为了插图的美观,对坐标轴细节等进行美化

% 坐标区调整% Y刻度标签定义temp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';ylbs = sprintfc('Samp %c',temp(1:5));set(gca, 'Box', 'on', ...                                 % 边框         'LineWidth',1,...                                % 线宽         'XGrid', 'on', 'YGrid', 'on', 'ZGrid', 'on',...  % 网格         'TickDir', 'out', 'TickLength', [.015 .015])     % 刻度% 坐标刻度调整set(gca, 'ytick',0:5,...         'ylim',[-0.5 4.5],...         'yticklabels',ylbs,...         'zlim',[0 1.5])% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 10)set([hXLabel, hYLabel,hZLabel], 'FontSize', 11, 'FontName', 'Arial')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');

以上。

相关文章:

  • InterSystems IRIS使用python pyodbc连接 windows环境,odbc驱动安装,DSN配置,数据源配置
  • 科技与狠活
  • elementui 日历组件el-calendar使用总结
  • GESP C++ 三级真题(2023年9月)T1 ⼩ 杨储蓄
  • Ceph资源池pool管理
  • 常用图像分类、目标检测模型性能测试
  • Spring自动装配
  • C# 4.0 等待线程结束
  • C++ 入门14:STL 容器之向量(vector)
  • C++基础(二)
  • SourceTree rebase(变基)的使用
  • Gooxi受邀参加第三届中国数据中心服务器与设备峰会
  • AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理
  • django ninja get not allowed 能用 put delete
  • 2.The DispatcherServlet
  • 分享的文章《人生如棋》
  • Elasticsearch 参考指南(升级前重新索引)
  • ES6之路之模块详解
  • Java|序列化异常StreamCorruptedException的解决方法
  • jdbc就是这么简单
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue2 SSR 的优化之旅
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 怎么把视频里的音乐提取出来
  • ​TypeScript都不会用,也敢说会前端?
  • # 飞书APP集成平台-数字化落地
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (10)STL算法之搜索(二) 二分查找
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (层次遍历)104. 二叉树的最大深度
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET C# 使用 iText 生成PDF
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net 连接达梦数据库开发环境部署
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET开源快速、强大、免费的电子表格组件
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .net中我喜欢的两种验证码
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /bin/rm: 参数列表过长"的解决办法
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [.net]官方水晶报表的使用以演示下载
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • [240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞