在之前的文章中,分享了Matlab折线图的绘制模板:
散点图的绘制模板:
也介绍了误差棒的使用方式:
这一次,我们尝试在折线图的基础上,加入更多的元素,比如线型、符号类型、公式,并在此基础上添加误差棒。
先来看一下成品效果:
特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。
模板中所用案例原始版本可以在file-exchange中找到(搜索图的标题),文章在此基础上进行了修改。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取数据。
% 导入数据
load data xfit yfit xdata_m ydata_m ydata_sxVdata yVdata xmodel ymodel ...
ymodelL ymodelUc cint
2. 颜色定义
颜色搭配比较考验个人审美,需要多加尝试。
这里用之前分享的addcolorplus工具:
%% 颜色定义
color_hFit = addcolorplus(1);
color_hModel = addcolorplus(168);
color_hData = addcolorplus(140);
color_hCI1 = addcolorplus(136);
color_hCI2 = addcolorplus(136);
color_hE = addcolorplus(93);
获取方式:公众号(阿昆的科研日常)后台回复 配色强化
3. 进阶折线图绘制
首先使用‘line’命令,绘制初始折线图,然后使用‘errorbar’命令,绘制误差棒。
% 绘制初始折线图
hFit = line(xfit, yfit);
hData = line(xVdata, yVdata);
hModel = line(xmodel, ymodel);
hCI(1) = line(xmodel, ymodelL);
hCI(2) = line(xmodel, ymodelU);
hE = errorbar(xdata_m, ydata_m, ydata_s);
% 添加label
hTitle = title('My Publication-Quality Graphics');
hXLabel = xlabel('Length (m)');
hYLabel = ylabel('Mass (kg)');
% 添加公式
hText = text(10, 800, ...
sprintf('{\\itC = %0.1g \\pm %0.1g (CI)}', c, cint(2)-c));
4. 细节优化
为了插图的美观,首先赋上之前选好的颜色:
% 赋色
set(hFit, 'Color', color_hFit)
set(hModel, 'Color', color_hModel)
set(hCI(1), 'Color', color_hCI1)
set(hCI(2), 'Color', color_hCI2)
set(hData, 'MarkerEdgeColor', 'none','MarkerFaceColor', color_hData)
set(hE, 'Color', color_hE,'MarkerEdgeColor', [.2 .2 .2], 'MarkerFaceColor' , color_hE)
进一步,调整线型、符号类型等属性:
% 设置线属性
set(hFit, 'LineWidth', 1.5)
set(hModel, 'LineStyle', '--', 'LineWidth',1.5)
set(hCI(1), 'LineStyle', '-.','LineWidth',1.5)
set(hCI(2), 'LineStyle', '-.','LineWidth',1.5)
set(hData, 'LineStyle', 'none', 'Marker','.','Marker', 'o', 'MarkerSize', 5)
set(hE, 'LineStyle', 'none', 'Marker','.','LineWidth', 1.5, 'Marker', 'o', 'MarkerSize', 6)
需要注意的是,当把'LineStyle'设置为'none',只保留符号标记,则呈现效果与散点图一致。
然后对坐标轴参数、字体字号等进行调整:
% 设置坐标轴属性
set(gca, 'Box', 'off',...
'TickDir', 'out', 'TickLength', [.02 .02], ...
'XMinorTick', 'on', 'YMinorTick', 'on',...
'XGrid', 'off', 'YGrid', 'on', ...
'XColor', [.3 .3 .3], 'YColor', [.3 .3 .3],...
'YTick', 0:500:2500, ...
'LineWidth', 1)
% legend
hLegend = legend([hE, hFit, hData, hModel,hCI(1)], ...
'Data ({\it\mu} \pm {\it\sigma})', 'Fit (C{\itx}^3)', ...
'Validation Data', 'Model (C{\itx}^3)', '95% CI', ...
'Location', 'NorthWest');
% 设置字体字号
set(gca, 'FontName', 'Helvetica')
set([hTitle, hXLabel, hYLabel, hText],'FontName', 'AvantGarde')
set([hLegend, gca], 'FontSize', 8)
set([hXLabel, hYLabel, hText], 'FontSize',10)
set(hTitle, 'FontSize', 12, 'FontWeight' ,'bold')
% 背景颜色
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');
以上。
转自:阿昆的科研日常
如有侵权,请联系本站删除!