2022/3/29 13:46:22 阅读:340 发布者:chichi77
在之前的文章中,分享了Matlab柱状图的绘制模板,
Matlab堆叠图的绘制模板,
Matlab横向柱状图的绘制模板,
那么这一次,再来看一下横向堆叠图该怎么画。
先来看一下成品效果:
特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取数据。
% 读取数据
% 自变量
X = 1:7;
% 因变量
A = [0.09 0.11 0.15 0.15 0.22 0.33 0.35
0.06 0.11 0.08 0.18 0.15 0.22 0.38
0.08 0.05 0.13 0.15 0.15 0.30 0.39
0.07 0.08 0.16 0.12 0.28 0.28 0.39
0.05 0.09 0.08 0.10 0.17 0.22 0.39
0.08 0.10 0.06 0.18 0.27 0.22 0.35];
需要注意的是,变量A的一列表示一个bar,而同一列中的每个数字表示一个bar上的子单元。
模板中给出的是6行7列,即有7个bar,每个bar包括6个子单元。
大家可以根据自己的数据进行调整。
2. 颜色定义
颜色定义也是一项很重要的工作。
但颜色搭配比较考验个人审美,需要多加尝试。
这里我直接用之前分享的addcolorplus工具:
获取方式:公众号(阿昆的科研日常)后台回复 配色强化
% 渐变色选择
map = addcolorplus(288);
num = size(A,1); % 变量数
idx = linspace(1,64,num);
idx = round(idx);
C = map(idx,:);
3. 横向堆叠图绘制
使用‘barh’命令,参数选择‘stack’,从而绘制初始的、未经美化的堆叠图。
GO = barh(X,A',0.8,'stacked','EdgeColor','k');
4. 细节优化
为了插图的美观,赋上之前选择好的颜色。
% 赋色
GO(1).FaceColor = C(1,:);
GO(2).FaceColor = C(2,:);
GO(3).FaceColor = C(3,:);
GO(4).FaceColor = C(4,:);
GO(5).FaceColor = C(5,:);
GO(6).FaceColor = C(6,:);
进一步,调整坐标轴、坐标轴刻度及其标签,
% 坐标轴美化
set(gca, 'Box', 'off', ... % 边框
'XGrid', 'off', 'YGrid', 'off', ... % 网格
'TickDir', 'out', 'TickLength', [.01 .01], ... % 刻度
'XMinorTick', 'off', 'YMinorTick', 'off', ... % 小刻度
'XColor', [.1 .1 .1], 'YColor',[.1 .1 .1],... % 坐标轴颜色
'XTick',0:0.5:3,... % 刻度位置、间隔、范围
'YTick',1:7,...
'Xlim' ,[0 2.5],...
'Ylim' , [0.4 7.6], ...
'Yticklabel',{'M1' 'M2' 'M3' 'M4' 'M5' 'M6' 'M7'},... % Y坐标轴刻度标签
'Xticklabel',{[0:0.5:3]}) % X坐标轴刻度标签
然后添加Legend,调整其位置,
% 标签及Legend 设置
hYLabel = xlabel('RMSE (m)');
hLegend =legend([GO(1),GO(2),GO(3),GO(4),GO(5),GO(6)], ...
'S1', 'S2', 'S3', 'S4', 'S5','S6', ...
'Location','southeast','Orientation','horizontal');
hLegend.ItemTokenSize = [5 5];
legend('boxoff');
设置完毕后,以期刊所需分辨率、格式输出。
%% 输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figWfigH]);
fileout = 'test';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
以上。
下载方式
原创不易,请尊重本人的付出,按照以下方式获取:
Step1:点击文章最下方的在看按钮
Step2:在本公众号(阿昆的科研日常)后台回复关键字“横向堆叠图”下载
如有侵权,请联系本站删除!