投稿问答最小化  关闭

万维书刊APP下载

Matlab论文插图绘制模板—堆叠图(横向)

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上的子单元。

模板中给出的是67列,即有7bar,每个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:在本公众号(阿昆的科研日常)后台回复关键字“横向堆叠图”下载

 

如有侵权,请联系本站删除!

  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com