MATLAB论文绘图全面指南

在利用MATLAB绘制论文图像的过程中,基本上针对每个问题都要搜索很多才能找到答案,在这里总结一下可能会用到的设置。

分点给出需要的设置:

1.图像的线宽,线型和颜色

 线宽直接调节 Linewidth;Color可以通过“16进制数值”或者“RGB三元组”修改;

配色是门学问,附一下我搜索到的比较经典的配色:

线型Linestyle可以参考下面四种:

受同学启发,图中的线条有时不仅需要通过颜色来区分,还需要叠加线型来区分(因为有些刊物的印刷是黑白的)

plot(t,y(:,1),'LineWidth',1.5,'Color',"#2D2C56",'linestyle','-');%实线
plot(t,y(:,2),'LineWidth',1.5,'Color',[0.1 0.45 0.9],'linestyle','--');%虚线

2.修改坐标轴的长宽比例

论文作图有时候需要绘制类似于长方形的图来优化排版,但默认设置画出来的更类似于正方形。绘制出的figure的坐标轴比例可以通过拖动图像框边界进行修改,但是要绘制一系列图像的时候为了保持图像间的一致,最好还是采用代码进行统一设置。

可以使用pbaspect(ratio) 设置当前坐标区的图框纵横比。图框纵横比是 x 轴、y 轴和 z 轴的相对长度。将ratio指定为由正值组成的三元素向量,以表示 x 轴、y 轴和 z 轴长度的比率。例如,[3 1 1] 指定 x 轴的长度等于 y 轴和 z 轴长度的三倍。如需轴长度在所有方向上都相等,请使用 [1 1 1]

pbaspect([2 1 1]) %修改坐标轴长宽比例为2:1

注:如果绘制的是二维图像还是需要输入三元素向量,修改前两个元素实现需要长宽比即可。

3.设置坐标轴的字体字号以及颜色

set(gca,'fontsize',14,'fontname','Times New Roman'); %坐标轴字体字号
% 坐标轴的颜色默认是灰色,将其指定为黑色
set(gca,'xcolor','k');
set(gca,'ycolor','k');

4.设置坐标轴标签的字体字号

xlabel('t/s','fontname', 'Times new roman','fontSize',14);
ylabel('x','fontname', 'Times new roman','fontSize',14);

5.设置图例的字体字号

h=legend('x_1','x_2','x_3');
set(h,'FontName','Times New Roman','FontSize',14)

6.避免导出的图像有白边

方法一:较为简单的设置,可以直接将图像的白边消除

set(gca, 'LooseInset', [0 0 0 0]);%避免Figure白边

上面这种方法是一点白边都不会留下来的,可以满足大多数要求;但我在绘图过程中发现可能会让图像的最右边坐标轴也被裁掉,避免这个问题需要对白边范围进行调整,即另一种方法:

方法二:可以先调节窗口尺寸,代码中我设置的是窗口长宽比为5:3(pos(3)为窗口长,pos(4)为窗口宽)

接下来修改留白范围

set(gca, 'Position', get(gca, 'OuterPosition') - get(gca, 'TightInset') * [-1 0 1 0; 0 -1 0 1; 0 0 1 0; 0 0 0 1])这句代码与方法一效果相同,可以在这个基础上通过加上数组微调窗口的长宽 

pos=get(gcf,'Position'); % 获取窗口尺寸信息
pos(3)=pos(4)/3*5; % 改变窗口宽度(倍数根据长宽比自己确定)
set(gcf,'Position',pos) % 更新窗口尺寸
set(gca, 'Position', get(gca, 'OuterPosition') - ...
    get(gca, 'TightInset') * [-1 0 1 0; 0 -1 0 1; 0 0 1 0; 0 0 0 1]+[0 0 -0.03 0]);%最后面的加上的【0 0 -0.03 0】是我根据实际图像效果手动输入数字再调整了下宽度大小,如果大小满意这项就不需要了

7.以pdf格式导出图像

png格式导出的图像在论文中放大时候模糊的,使用pdf格式会避免这个问题

set(gcf,'Units','Inches');
pos = get(gcf,'Position');
set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)]);
filename = 'mypaper.pdf'; % 设定导出文件名
print(gcf,filename,'-dpdf','-r0') %导出pdf并避免pdf白边

代码中的'-r0'是必须加上的,否则导出的图像就是一整个白页中间有一幅图,要想插入到论文里面还得进行裁剪;加上“'-r0'后导出的图像可以直接使用。

最后给出汇总的代码(可能绘图中用不到这么多设置,取需要的即可)

plot(t,y(:,1),'LineWidth',1.5,'Color',"#2D2C56",'linestyle','-');
hold on;
plot(t,y(:,2),'LineWidth',1.5,'Color',[0.1 0.45 0.9],'linestyle','-');
axis([0 10 0 8]); %设置坐标轴范围
pbaspect([2 1 1]) %修改坐标轴长宽比例
set(gca,'fontsize',14,'fontname','Times New Roman'); %坐标轴字体字号
xlabel('t/s','fontname', 'Times new roman','fontSize',14);
ylabel('x','fontname', 'Times new roman','fontSize',14);
h=legend('x_1','x_2');
set(h,'FontName','Times New Roman','FontSize',14)
% 坐标轴默认是灰色,将其指定为黑色
set(gca,'xcolor','k');
set(gca,'ycolor','k');
set(gca, 'LooseInset', [0 0 0 0]);%避免Figure白边方法一
% 导出到pdf
set(gcf,'Units','Inches');
pos = get(gcf,'Position');
set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])
filename = 'Mypaperfigure.pdf'; % 设定导出文件名
print(gcf,filename,'-dpdf','-r0') %导出pdf并避免pdf白边
close(gcf)
  • 15
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Matlab中指定图例的排版,可以使用legend函数的一些选项和参数来控制。 在IEEE模板中,图例通常需要在一定的宽度范围内进行排版,以确保整体图像的美观。以下是一些可以用于控制图例排版的选项和参数: 1. 'Location'参数:可以指定图例的位置,例如'NorthEast'、'SouthWest'等。使用该参数可以将图例放置在合适的位置,以避免覆盖曲线。如果需要将图例放在特定的坐标位置,可以使用'Location'参数的二元素向量来指定[x, y]坐标。 2. 'Orientation'参数:可以指定图例的方向,例如'horizontal'(水平排列)或'vertical'(垂直排列)。通过选择合适的方向,可以确保图例不会覆盖曲线。 3. 'NumColumns'参数:可以指定图例的列数。通过将图例分为多列,可以在有限的宽度内容纳更多的图例项,减少覆盖曲线的可能性。 4. 'Box'参数:可以控制是否在图例周围绘制一个框。通过设置'Box'参数为'off',可以消除边框,并进一步减少覆盖曲线的可能性。 综合使用这些选项和参数,可以实现更好的图例排版效果。例如,可以尝试将图例放置在图像的角落,并选择垂直方向排列,以减少对曲线的覆盖。如果图例项较多,可以使用多列来排列图例项,并将边框设置为'off'以减少占用空间。 请注意,具体的排版方法可能因实际情况而异。建议根据具体要求和图像特点进行尝试和调整,以获得最佳的图例排版效果。 : Matlab 提供的 legend 函数 : % cellstr - cell array of strings for the legend
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值