投稿问答最小化  关闭

万维书刊APP下载

Matlab论文插图绘制模板第28期—折线图进阶

2022/5/20 14:58:00  阅读:375 发布者:

 

在之前的文章中,分享了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');

以上。

转自:阿昆的科研日常

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


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

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

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