之前有分享过一个Matlab多组堆叠图的绘制模板

最近有朋友私信我,想让我出一个横向的多组堆叠图。

所以,这次就再出一期横向多组堆叠图的教程。

先来看一下成品效果:

特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友


模板中最关键的部分内容

1. 数据准备

此部分非常的关键

示例程序中,共有6组数据,每组包括2个堆叠柱子,每根柱子包括4个子单元

大家可以结合第三部分内容思考一下这里变量设置的原因。

% 读取数据% 自变量Y = 1:18;Y(3:3:18) = [];% 因变量X = [5.5 5.6 8.5 8.7 7.1 7.2     5.5 5.6 8.5 8.8 7.1 7.3     3.3 3.1 5.2 4.2 4.1 4.1     2.6 2.2 5.1 4.1 4.5 4.4];X = repmat(X,1,2);

2. 颜色定义

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

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

尤其是这种图,颜色选不好很容易显得杂乱

这里直接使用TheColor配色工具中的SCI权威配色库中的渐变色,并利用渐变色稀疏化功能得到8个颜色:

%% 颜色定义num = size(X,1); % 堆叠柱数C = TheColor('sci',2068,'map',num*2);C1 = C(1:4,:); % 第一组颜色C2 = C(5:8,:); % 第二组颜色

3. 横向多组堆叠图绘制

使用‘barh’命令,分别绘制未经美化的两组横向堆叠图

% 第一组X1 = zeros(size(X));X1(:,1:2:12) = X(:,1:2:12);GO1 = barh(Y,X1',1,'stacked','EdgeColor','k');hold on% 第二组X2 = zeros(size(X));X2(:,2:2:12) = X(:,2:2:12);GO2 = barh(Y,X2',1,'stacked','EdgeColor','k');hTitle = title('HMultiStackBar Plot');hXLabel = xlabel('Point spacing');hYLabel = ylabel('Samples');

​考虑到配色问题,这里沿用了双轴柱状图的作图思路,构造了两组数据,画了两次堆叠图

具体可以参考Matlab论文插图模板第4期—双坐标轴柱状图这期内容。

4. 细节优化

为了插图的美观,赋上之前选择好的颜色

% 赋色% 第一组的赋色GO1(1).FaceColor = C1(1,:);GO1(2).FaceColor = C1(2,:);GO1(3).FaceColor = C1(3,:);GO1(4).FaceColor = C1(4,:);% 第二组的赋色GO2(1).FaceColor = C2(1,:);GO2(2).FaceColor = C2(2,:);GO2(3).FaceColor = C2(3,:);GO2(4).FaceColor = C2(4,:);

进一步,调整坐标轴、坐标轴刻度及其标签,添加legend,设置字体字号

% 坐标轴美化set(gca, 'Box', 'off', ...                                         % 边框         'XGrid', 'off', 'YGrid', 'off', ...                       % 网格         'TickDir', 'out', 'TickLength', [.005 .005], ...          % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1],...           % 坐标轴颜色         'YTick',Y(1:2:end)+0.5,...         'YTickLabel',{'s1','s2','s3','s4','s5','s6'})% Legend设置    hLegend = legend([GO1(1),GO1(2),GO1(3),GO1(4),GO2(1),GO2(2),GO2(3),GO2(4)], ...                 'A1', 'A2', 'A3', 'A4','B1', 'B2', 'B3', 'B4', ...                 'Location', 'eastoutside','Orientation','vertical');hLegend.ItemTokenSize = [5 5];legend('boxoff');% 字体和字号set(gca, 'FontName', 'Helvetica')set([hXLabel, hYLabel, hLegend], 'FontName', 'AvantGarde')set(gca, 'FontSize', 10)set([hXLabel, hYLabel, hLegend], 'FontSize', 11)set(hTitle, 'FontSize', 11, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])

设置完毕后,按照所需分辨率、格式输出图片。

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

也可以尝试其它配色:

以上。

完整代码:

Matlab论文插图绘制模板第61期—横向多组堆叠图

Matlab论文插图绘制模板第61期—横向多组堆叠图相关推荐

  1. Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)

    在之前的文章中,分享了一系列Matlab折线图的绘制模板: 这一次,再来分享一种特殊的折线图:带误差棒的折线图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Ma ...

  2. Matlab论文插图绘制模板第55期—带等高线的网格曲面图(Meshc)

    ​在之前的文章中,分享了Matlab网格曲面图的绘制模板: 带帷幕的网格曲面图绘制模板: 进一步,再来分享一下带等高线的网格曲面图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制 ...

  3. Matlab论文插图绘制模板第54期—带帷幕的网格曲面图(Meshz)

    在上一篇文章中,分享了Matlab网格曲面图的绘制模板: 进一步,再来分享一下带帷幕的网格曲面图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科 ...

  4. Matlab论文插图绘制模板第24期—柱状图(多组堆叠)

    在之前的文章中,分享了一个Matlab柱状图的绘制模板: 以及一些特殊形式的柱状图: 昨天有朋友问我,类似下面这种多组堆叠图应该怎么画. 我告诉她,之前有类似的教程,稍微举一反三一下,不难画. 但回头 ...

  5. Matlab论文插图绘制模板第28期—柱状图(带误差棒errorbar)

    在之前的文章中,分享了Matlab柱状图的绘制模板: 折线图的绘制模板: 散点图的绘制模板: 在实际应用时,很多时候需要在以上内容基础上添加误差棒. 所以,这次来分享一下带误差棒的柱状图的绘制模板,算 ...

  6. Matlab论文插图绘制模板第50期—分簇散点图(Swarmchart)

    在之前的文章中,分享了很多Matlab散点图的绘制模板: 这一次,再来分享一种特殊的散点图:分簇散点图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab ...

  7. Matlab论文插图绘制模板第78期—进阶词云图

    词云图一般由词汇.颜色.大小三种元素构成,其中颜色主要用于区分不同的词汇,而字体的大小可以直观地展示词汇数值的大小. 在之前的文章中,分享过一个简单的Matlab词云图绘制模板. 那么,我们进一步看一 ...

  8. Matlab论文插图绘制模板第33期—等高线填充图(contourf)

    在上一期文章中,分享了Matlab等高线图的绘制模板: 进一步,再来分享一下等高线填充图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行 ...

  9. Matlab论文插图绘制模板第39期—阶梯图(Stairs)

    在之前的文章中,分享了Matlab折线图的绘制模板: 三维折线图的绘制模板: 以及一些特殊的线图: 这次再来分享一种线图:阶梯图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨 ...

最新文章

  1. 集五福,我用Python
  2. C语言 · 求存款
  3. 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志
  4. Python 实现 csv文件转换成json文件
  5. 深度学习笔记之win7下TensorFlow的安装
  6. 前端学习(1400):多人管理20代码优化
  7. SecureCRT密钥远程登录Linux
  8. python读取windows日志_Python解析windows系统日志文件
  9. java - 菱形输出
  10. 新建cordova应用,插件开发教程系列(总目录)
  11. linux zk服务 关闭_ORACLE数据库RAC安装部署--一键关闭Linux非必要服务
  12. C#基础 数据类型 类型转换
  13. android手机添加删除桌面图标和插件,设置壁纸
  14. 如何在线将WAV转换为MP3格式
  15. 苹果电脑网速怎么测试软件,macbookpro怎么检测网速?
  16. 学习光线追踪(16)---折射计算[1]
  17. 220927工作日志
  18. 易语言教程数据库替换
  19. a标签,相对地址,绝对地址,锚点技术
  20. Android支付接入

热门文章

  1. java 生成的临时pdf文件无法删除
  2. HTML5不支持cellspacing,html5中不再支持table的cellspacing和cellpadding属性
  3. DOM对象方法---removeChild(),insertBefore()
  4. 征服英语的30个好习惯 --- 李阳
  5. Ubuntu下Charm-Crypto安装
  6. fopen和fclose的用法
  7. 卡尔曼转矩观测_基于卡尔曼观测器的永磁同步电机自抗扰控制
  8. GreatSQL项目捉虫活动(第一期)重磅来袭!
  9. XMPP - 即时通讯技术
  10. android gridview教程,Android系列教程之GridView组件的使用