MATLAB在科研绘图中的高效应用

看了很多关于MATLAB绘制图片的文章,很多时候他们会使用其他发辅助软件来对MATLAB绘制好的图片进行编辑或者进一步的修改。如会有使用VISIO对其坐标轴或者其他进行注释,或者采用AI来对其进行进一步的修改。

随着MATLAB版本的不断的更新,目前MATLAB本身就自带了很多强大的对图片进行编辑的函数,修改出来的效果也很不错。并且使用函数对图片进行控制,可以更好的保证输出的每一张图片格式统一。

下面介绍MATLAB在论文作图的时候最常用的几个对图片进行修改的函数。


x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
p = plot(x,y1,x,y2);

通过上面的代码绘制的函数如下图:


(1)首先可以对图片中的绘制的线进行更改,在高级版本的MATLAB中,线条是一个对象,可以使用圆点法对其进行修改,可以查询其属性。比较常用的属性有:


p(1).LineWidth = 2;%设置第一个线条的线宽为2磅
p(2).Marker = '>';%设置第二个线条的标记marker为'>'
p(2).LineWidth = 2;%设置第二个线条的线宽为2磅
p(1).Color = [0.894117647058824	0.121568627450980 0.149019607843137];%对颜色进行设置
p(2).Color = [0.192156862745098	0.498039215686275 0.717647058823529];%对颜色进行设置

绘制出来的图片如下:


该颜色设置采用的是:


此外还可以设置marker的标记的位置,但是这种方式设置需要在plot的时候对其进行设置。


x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
p1 = plot(x,y1,'->','MarkerIndices',1:5:length(y1));%每5个数据点标记一次
hold on
p2 = plot(x,y2,'-o','MarkerIndices',[1 50 100]);%在第一个,第5个,第10个位置标记
p1(1).LineWidth = 2;%设置第一个线条的线宽为2磅
p2(1).LineWidth = 2;%设置第二个线条的线宽为2磅
p1(1).Color = [0.894117647058824	0.121568627450980 0.149019607843137];%对颜色进行设置
p2(1).Color = [0.192156862745098	0.498039215686275 0.717647058823529];%对颜色进行设置

绘制处的图如下:


如果需要对Line的其他属性进行设置,可以查询MATLAB提供的help说明文件,如上连接。

(2)坐标设置

之后可以对坐标区进行设置了。

首先可以设置坐标区的标签


ax = gca;
ax.XLabel.String = 'Time (\circC)';%设置X坐标轴名称,随便输入的单位只是为了举例
ax.XLabel.FontSize = 12;%设置X坐标轴字体大小
ax.XLabel.FontName = 'Arial';%设置X坐标轴字体名称
ax.YLabel.String = 'Amplitude';%设置Y坐标轴名称
ax.YLabel.FontSize = 12;%设置Y坐标轴字体大小
ax.YLabel.FontName = 'Arial';%设置Y坐标轴字体名称

绘制如下:


目前MATLAB在默认的解释器tex下,已经支持大多数的latex语法,不需要选择latex解释器了。这就极大的了方便了,在对图进行修改的时候可以使用latex编写公式,放到图中。

接下来可以对标签进行设置


ax.YTick = -1.5:0.5:1.5;%Y轴刻度
ax.XTick = -2*pi:pi:2*pi;%X轴刻度
ax.XTickLabel = {'-2\pi','-\pi','0','\pi','2\pi'};%X轴刻度名称
ax.XLim = [-2*pi 2*pi];%X轴上下限
ax.YLim = [-1.5 1.5];%Y轴上下限
ax.FontSize = 12;%坐标轴字体大小
ax.FontName = 'Arial';%坐标轴字体名称

绘制的图如下:


更多的可以查看AXES属性说明:


(3)图例添加

有的时候需要在论文中添加图例,可以使用图例相关的函数。


lgd = legend('\it{P}_{\rm{ev}}\rm =100kPa','\it{P}_{\rm{ev}}\rm =200kPa');
%图例名称,可以看到即使在默认tex解释器下,可以正常使用latex语法,此处仅为举例
lgd.NumColumns = 2;%设置图例的列数
lgd.Box = 'off';%图例外围无边框
lgd.FontSize = 12;%图例字体大小
lgd.FontName = 'Arial';%图例字体名称

绘制出的图如下:


可以看到,为图添加了图例。

(5)图片大小设置


%设置画布的大小以及在屏幕中间位置
set(gcf,'Units','centimeters','Position',[1.4 10 16 10.5]) 
%设置坐标区图的大小和在画布中位置
set(gca,'Units','centimeters','Position',[2 1.2 12 9])

设置完成后输出的图片,由于新版的matlab可以自动裁边,所以对于画布大小设置就没太大关系了,只需要设置gca的大小,即你绘制图的大小就可以。


(6)图片裁白边及保存

在新版的MATLAB2020a及以后的版本,可以使用exportgraphics输出各种格式图片来满足论文要求,并且可以裁掉白边。


exportgraphics(gcf,'peaks.png','Resolution',300);%输出分辨率为300的PNG图片
exportgraphics(gcf,'peaks.pdf','ContentType','vector');%输出矢量pdf图片
exportgraphics(gcf,'peaks.eps');%输出矢量eps图片

(7)完整代码


x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);


p1 = plot(x,y1,'->','MarkerIndices',1:3:length(y1));%每3个数据点标记一次
hold on
p2 = plot(x,y2,'-o','MarkerIndices',1:3:length(y2));%每3个数据点标记一次
p1(1).LineWidth = 2;%设置第一个线条的线宽为2磅
p2(1).LineWidth = 2;%设置第二个线条的线宽为2磅
p1(1).Color = [0.894117647058824	0.121568627450980 0.149019607843137];%对颜色进行设置
p2(1).Color = [0.192156862745098	0.498039215686275 0.717647058823529];%对颜色进行设置


ax = gca;
ax.XLabel.String = 'Time (\circC)';
ax.XLabel.FontSize = 12;
ax.XLabel.FontName = 'Arial';
ax.YLabel.String = 'Amplitude';
ax.YLabel.FontSize = 12;
ax.YLabel.FontName = 'Arial';


ax.YTick = -1.5:0.5:1.5;
ax.XTick = -2*pi:pi:2*pi;
ax.XTickLabel = {'-2\pi','-\pi','0','\pi','2\pi'};
ax.XLim = [-2*pi 2*pi];
ax.YLim = [-1.5 1.5];
ax.FontSize = 12;
ax.FontName = 'Arial';

lgd = legend('\it{P}_{\rm{ev}}\rm =100kPa','\it{P}_{\rm{ev}}\rm =200kPa');
lgd.NumColumns = 2;
lgd.Box = 'off';
lgd.FontSize = 12;
lgd.FontName = 'Arial';

%设置画布的大小以及在屏幕中间 位置
set(gcf,'Units','centimeters','Position',[1.4 10 16 10.5]) 
%设置坐标区图的大小和位置
set(gca,'Units','centimeters','Position',[2 1.2 12 9])
exportgraphics(gcf,'peaks.png','Resolution',300);%输出分辨率为300的PNG图片
exportgraphics(gcf,'peaks.pdf','ContentType','vector');%输出矢量pdf图片
exportgraphics(gcf,'peaks.eps');%输出矢量eps图片

输出的eps图片如下:


可以看到输出的图片自动裁掉了白边,并且十分精准。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空