Matlab论文插图绘制模板第61期—横向多组堆叠图
之前有分享过一个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期—横向多组堆叠图相关推荐
- Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)
在之前的文章中,分享了一系列Matlab折线图的绘制模板: 这一次,再来分享一种特殊的折线图:带误差棒的折线图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Ma ...
- Matlab论文插图绘制模板第55期—带等高线的网格曲面图(Meshc)
在之前的文章中,分享了Matlab网格曲面图的绘制模板: 带帷幕的网格曲面图绘制模板: 进一步,再来分享一下带等高线的网格曲面图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制 ...
- Matlab论文插图绘制模板第54期—带帷幕的网格曲面图(Meshz)
在上一篇文章中,分享了Matlab网格曲面图的绘制模板: 进一步,再来分享一下带帷幕的网格曲面图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科 ...
- Matlab论文插图绘制模板第24期—柱状图(多组堆叠)
在之前的文章中,分享了一个Matlab柱状图的绘制模板: 以及一些特殊形式的柱状图: 昨天有朋友问我,类似下面这种多组堆叠图应该怎么画. 我告诉她,之前有类似的教程,稍微举一反三一下,不难画. 但回头 ...
- Matlab论文插图绘制模板第28期—柱状图(带误差棒errorbar)
在之前的文章中,分享了Matlab柱状图的绘制模板: 折线图的绘制模板: 散点图的绘制模板: 在实际应用时,很多时候需要在以上内容基础上添加误差棒. 所以,这次来分享一下带误差棒的柱状图的绘制模板,算 ...
- Matlab论文插图绘制模板第50期—分簇散点图(Swarmchart)
在之前的文章中,分享了很多Matlab散点图的绘制模板: 这一次,再来分享一种特殊的散点图:分簇散点图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab ...
- Matlab论文插图绘制模板第78期—进阶词云图
词云图一般由词汇.颜色.大小三种元素构成,其中颜色主要用于区分不同的词汇,而字体的大小可以直观地展示词汇数值的大小. 在之前的文章中,分享过一个简单的Matlab词云图绘制模板. 那么,我们进一步看一 ...
- Matlab论文插图绘制模板第33期—等高线填充图(contourf)
在上一期文章中,分享了Matlab等高线图的绘制模板: 进一步,再来分享一下等高线填充图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行 ...
- Matlab论文插图绘制模板第39期—阶梯图(Stairs)
在之前的文章中,分享了Matlab折线图的绘制模板: 三维折线图的绘制模板: 以及一些特殊的线图: 这次再来分享一种线图:阶梯图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨 ...
最新文章
- java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis
- 论文解读 | 基于神经网络的知识推理
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- mono for android定义,2.1.3 使用Mono for Android的原因
- Windows 8 开发者预览版下载及简体中文语言包下载
- mysql数据卸载工具_如何把Mysql卸载干净(亲测有效)_Mysql_数据库
- imp 导入dmp文件。
- QQ群下载解除限速小技巧【提高千倍不止】【无需会员】
- GO 语言学习资源整理
- 舱机器人尾巴毛茸茸_『新奇玩意』毛茸茸的机器人不仅可撸,还会摇尾巴
- 2.shel脚本l知识点学习一
- 扫 雷 小 游 戏
- 拍摄的风景视频中,如何快速有效地去除视频中的杂物?
- 十进制转32位二进制(Java)
- bibtex 共生_游戏与音乐的共生
- 告诉你宇宙的真相:现代观点
- 自然语言处理(二)——词性标注与命名实体识别
- C20_OC10-内存管理
- SaaS模式、技术与案例详解——第16章 SaaS模式可行性分析
- java MySQL表的约束与数据库设计 详解
热门文章
- 【2022/1/7】Android平台启动图制作.9.png图片
- 拒绝借口之事业生涯力戒“浮躁”
- 数据要素形成与价值释放规律研究
- 花生壳 || FRP实现玩客云、树莓派...内网穿透,外网访问
- 2008服务器系统启动不了网,活用Windows Server 2008命令 解决网络疑难杂症
- Apache配置域名转发
- 执业医师考试该如何备考?
- 教师网络计算机研修培训总结,教师网络研修心得体会
- 自动新闻抓取系统-开发有感(转载)
- 记录一些kotlin的用法