Matlab进阶绘图第27期—水平双向堆叠图

在上一期文章中,分享了Matlab双向堆叠图的绘制方法:

进一步,再来看一下水平双向堆叠图的绘制方法(由于Matlab中未收录水平双向堆叠图的绘制函数,因此需要大家自行设法解决)。

先来看一下成品效果:

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


1. 数据准备

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

复制代码
% 读取数据load data.mat% 初始化绘图参数x = X;y1 = A1;y2 = A2;

2. 颜色定义

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

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

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

复制代码
%% 颜色定义C = TheColor('sci',2062,'map',6);% C = flipud(C);

3. 水平双向堆叠图绘制

通过调用两次'barh'命令,绘制初始水平双向堆叠图

复制代码
GO1 = barh(x,y1,0.9,'stacked','EdgeColor','none');GO2 = barh(x,y2,0.9,'stacked','EdgeColor','none');hTitle = title('Stacked Bidirectional barh chart');hXLabel = xlabel('Xaxis');hYLabel = ylabel('Yaxis');

4. 细节优化

为了插图的美观,将初始水平双向堆叠图赋上之前选择的颜色

复制代码
% 赋色for i = 1:6    GO1(i).FaceColor = C(i,1:3);    GO2(i).FaceColor = C(i,1:3);end

进一步,对坐标轴细节等进行一点点美化。

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

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

以上。

相关推荐
troy1289 小时前
Python 基础语法(六):函数与模块、文件操作、异常处理
开发语言·python
lv__pf9 小时前
09-深入理解AQS之独占锁ReentrantLock源码分析【TL 并发 09】
java·开发语言
这是程序猿9 小时前
Java线程池深度剖析:源码原理、核心参数、任务调度与生产调优实战
java·开发语言·python
quantdash_cc9 小时前
从数据采集到策略消费,股票日内行情管道应该怎么设计?
开发语言·python·数据分析·量化交易·股票数据·quantdash
郝学胜-神的一滴9 小时前
C++20模板元编程 01:从零吃透模板核心底层逻辑
开发语言·c++·vscode·程序人生·开源
躺柒10 小时前
读数据可视化33生命科学(下)
信息可视化·可视化·数据可视化·医学·临床医学·生命科学
ManageEngine卓豪10 小时前
如何用 OpenTelemetry 实现企业分布式应用的全链路可视化?Applications Manager 集成方案与配置
可视化·apm·应用性能管理·分布式应用
可乐鸡翅yeah_10 小时前
HLS流媒体首屏起播慢深度优化,从分片、索引、播放器全链路调优
开发语言·javascript·ecmascript·m3u8·m3u8在线
luj_176810 小时前
生物体如何应对功能击穿?
c语言·开发语言·c++·经验分享·算法
luj_176810 小时前
击穿分析五大关键步骤
开发语言·网络·c++·经验分享·算法