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

Matlab个性化绘图第5期—三维分层柱状图

三维分层柱状图本质上就是多组柱状图

Matlab论文插图绘制模板—柱状图

或者三维柱状图

Matlab论文插图绘制模板—三维柱状图

不同之处在于三维分层柱状图把每一组数据单独放在一个三维平面上

由于Matlab未收录三维分层柱状图的绘图函数,因此需要大家自行解决。

本文使用自制的barIn3D小工具进行三维分层柱状图的绘制,先来看一下成品效果:

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


1. 数据准备

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

% 读取数据load data.mat% 初始化绘图参数data = MA;s = 0.6; % 柱子宽度

2. 颜色定义

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

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

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

%% 颜色定义map = TheColor('sci',1740);C = map([1,2,3],1:3);

3. 三维分层柱状图绘制

调用‘barIn3D’命令,绘制初始三维分层柱状图

h = barIn3D(data,s,C);hTitle = title('Bar in 3D Plot');hXLabel = xlabel('x');hYLabel = ylabel('y');hZLabel = zlabel('z');view(46,48)alpha(0.9) % 透明度

4. 细节优化

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

% 坐标区调整set(gca, 'Box', 'on', ...                                  % 边框         'LineWidth', 1, 'GridLineStyle', '-',...          % 坐标轴线宽         'XGrid', 'on', 'YGrid', 'on','ZGrid', 'on', ...   % 网格         'TickDir', 'out', 'TickLength', [.015 .015])      % 刻度% 坐标轴刻度set(gca, 'xtick',1:10,...                                           'xlim',[0.5 8.5],...         'ytick',1:10,...         'ylim',[0.8 3.2],...         'ztick',0:10:60,...         'zlim',[0 30])% Legend设置 hLegend = legend(h(1:size(MA,1)), ...    'Samp1','Samp2','Samp3',...    'Location', 'northwest',...    'Orientation','vertical');% Legend位置微调 P = hLegend.Position;hLegend.Position = P + [-0.06 0.04 0 0];% 字体和字号set(gca, 'FontName', 'Arail', 'FontSize', 10)set([hLegend,hXLabel, hYLabel,hZLabel], 'FontName', 'Arail', 'FontSize', 10)set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])set(gca,'Projection','Perspective');

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

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

以上。


http://www.kler.cn/a/447222.html

相关文章:

  • uniapp开发app,cover-view不能隐藏,使用v-if,v-show都不行的解决办法
  • CMD使用SSH登陆Ubuntu
  • 常用的JVM启动参数有哪些?
  • 常用Python自动化测试框架有哪些?
  • fastdds:idl
  • 32单片机串口数据接收、空闲IDLE中断详解
  • 播放端标注叠加方案
  • 高并发服务器实现总结目录
  • VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
  • Cadence学习笔记 9 器件封装匹配
  • OpenHarmony 3.2 网卡获取ip地址缓慢分析
  • [创业之路-202]:任正非管理华为的思想与毛泽东管理党、军队、国家的思想的相似性与差异性
  • 高效SQL优化技巧:解决常见性能问题的实战方案
  • Spring 6 实现 Bean 异步初始化,减少项目启动时间
  • JAVA包装类变量赋值是会新创建对象实例
  • 【LeetCode】227、基本计算器 II
  • C#中方法参数传值和传引用的情况
  • AI大模型与传统模型的六大区别
  • feign调用远程服务返回值的一种处理办法
  • PostgreSQL中使用PL/pgSQL开发函数
  • Android Studio AI助手---Gemini
  • 前端处理流式数据(SSE服务)
  • 单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”
  • 基于预测反馈的情感分析情境学习
  • 国内网络在Ubuntu 22.04中在线安装Ollama并配置Open-WebuiDify
  • 【论文阅读】Computing the Testing Error without a Testing Set