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

Matlab进阶绘图第65期—带分组折线段的柱状图

带分组折线段的柱状图是在原始柱状图的基础上,在每组柱状图位置处分别添加折线段,以进行对比或添加额外信息

由于Matlab中未收录带分组折线段的柱状图的绘制函数,因此需要大家自行设法解决

本文使用自制的BarwithGroupedLine小工具进行带分组折线段的柱状图的绘制,先来看一下成品效果:

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


1. 数据准备

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

% 读取数据load data.mat% 初始化绘图参数X = x;Y = dataset;YL = linedata;

2. 颜色定义

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

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

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

%% 颜色定义C = TheColor('sci',2040,'map',5);C = flipud(C);

3. 带分组折线段的柱状图绘制

调用‘BarwithGroupedLine’函数,绘制初始带分组折线段的柱状图

[GO,L] = BarwithGroupedLine(X,Y,YL,C);hTitle = title('Bar with Grouped Lines');hXLabel = xlabel('Samples');hYLabel = ylabel('RMSE (m)');

4. 细节优化

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

%% 细节优化% 线型调整for i = 1:length(L)    L(i).Color = 'k';    L(i).Marker = "o";    L(i).LineWidth = 0.5;end% 坐标区调整set(gca, 'Box', 'off', ...                                         % 边框         'LineWidth',1,...                                         % 边框线宽         'XGrid', 'off', 'YGrid', 'on', ...                        % 网格         'TickDir', 'out', 'TickLength', [.01 .01], ...            % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])              % 坐标轴颜色% 坐标轴刻度调整set(gca, 'YTick', 0:0.1:1,...         'Ylim' , [0 0.4], ...         'XTick',1:3,...         'Xticklabel',{'samp1' 'samp2' 'samp3'},...         'Yticklabel',{0:0.1:1})% Legend hLegend = legend([GO,L(1)], ...                 'A', 'B', 'C','D', 'E','REF', ...                 'Location', 'eastoutside', ...                 'Box','off');% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 10)set([hLegend, hXLabel, hYLabel], 'FontSize', 11, 'FontName', 'Arial')set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])% 添加上、右框线xc = get(gca,'XColor');yc = get(gca,'YColor');unit = get(gca,'units');ax = axes( 'Units', unit,...           'Position',get(gca,'Position'),...           'XAxisLocation','top',...           'YAxisLocation','right',...           'Color','none',...           'XColor',xc,...           'YColor',yc);set(ax, 'linewidth',1,...        'XTick', [],...        'YTick', []);

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

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

以上。

http://www.lryc.cn/news/408649.html

相关文章:

  • EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频
  • FPGA实验6: 有时钟使能两位十进制计数器的设计
  • C# 委托函数 delegate
  • Vue3响应式高阶用法之`shallowReadonly()`
  • Windows系统安全加固方案:快速上手系统加固指南 (下)
  • 记一次因敏感信息泄露而导致的越权+存储型XSS
  • Java笔试面试题AI答之线程Thread(1)
  • 2.5 C#视觉程序开发实例2----图片内存管理
  • Java核心 - 深入理解 Java 枚举类
  • HOW - CSS 定义颜色值
  • Vue3 reactive原理(一)-代理对象及数组
  • 基于联咏 NT98692芯片赋能边缘计算IP摄像机与XVR监控系统解决方案
  • Python设计模式 - 工厂方法模式
  • 学习记录:ESP32控制舵机 FREERTOS BLE
  • react中的useState和Hook、副作用
  • Linux嵌入式学习——数据结构——线性表的链式结构
  • 文本编辑 文本中的各种空格
  • Vue插槽 (Slots)详解
  • Unity中有关Animation的一点笔记
  • module federation模块联邦与微前端
  • 日常开发记录分享——C#控件ToolTip实现分栏显示内容
  • Kettle下载安装
  • 最新版Golang pprof使用(引入、抓取、分析,图文结合)
  • vue3学习记录1:emit的写法
  • Visual Studio Code + vue快速安装配置Node.js+Vue+webpack+vscode
  • 【Dart 教程系列第 49 篇】什么是策略设计模式?如何在 Dart 中使用策略设计模式
  • BGP路由反射器
  • DolphinDB Web 端权限管理:可视化操作指南
  • 学习Vue2收藏这一篇就够了(如何创建Vue实例)
  • Mysql数据库第四次作业