在之前的文章中,分享过Matlab折线图的绘制模板:
面积图的绘制模板:
面积填充图的绘制模板:
这次再来分享一种线图:堆叠折线图。
先来看一下成品效果:
特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取数据,这里直接用Matlab自带的数据。
% 读取数据
tbl = readtable('patients.xls');
2. 颜色定义
颜色搭配比较考验个人审美,需要多加尝试。
这里为了方便,直接用之前分享的addcolorplus工具的渐变色:
%% 颜色定义
idx = linspace(1,64,4);
idx = round(idx);
map = addcolorplus(300);
C = map(idx,:);
3. 堆叠折线绘制
使用‘stackedplot’命令,绘制初始的堆叠折线图。
s =stackedplot(tbl,{'Height','Weight','Systolic','Diastolic'},'LineWidth',2);
值得一提的是,stackedplot命令需要Matlab版本在2018b以上。
4. 细节优化
堆叠折线图中坐标区大部分属性无法像之前分享的其它数据图一样进行调整,而且调整的方式也有所不同。
首先,为了插图的美观,赋上之前选择好的颜色:
% 赋色
s.LineProperties(1).Color = C(1,:);
s.LineProperties(2).Color = C(2,:);
s.LineProperties(3).Color = C(3,:);
s.LineProperties(4).Color = C(4,:);
然后,对坐标区字体字号、背景颜色等细节进行调整:
% 字体和字号
set(gca, 'FontName', 'Helvetica','FontSize', 10)
% 背景颜色
set(gcf,'Color',[1 1 1])
设置完毕后,按照所需分辨率、格式输出图片。
%% 图片输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figWfigH]);
fileout = 'test';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
完整代码:
Matlab堆叠折线图绘制模板