绘图教程及颜色数据链接见文末哦~
1 出图效果
好看的图幅是一篇SCI被录用的关键~
2 部分绘图代码
%% Made by Lwcah in 2023-07-09(公众号:Lwcah) %% 公众号:Lwcah %% 知乎、B站、小红书、视频号、抖音同名账号:Lwcah,感谢关注~ %% 更多MATLAB+SCI绘图教程敬请观看~ %% 绘制模板 close all;clear all;clc; %% 1行1列 %% 一幅图的时候figureWidth = 8.5;figureHeight = 8;调整这两个参数就可以 %定义整幅图出现的在电脑屏幕上的位置以及长和宽 %这里有必要解释一下为什么figureWidth要设置为8.5; %因详细解释需要很长的篇幅,请转公众号观看该天的文章。 figureHandle = figure; figureUnits = 'centimeters'; figureWidth = 15; figureHeight = 9; set(gcf, 'Units', figureUnits, 'Position', [28 10 figureWidth figureHeight]); % 注:28代表出图时图的左下角相对于整个电脑屏幕的左下角向左偏移28个单位,向上偏移20个单位。 % 可自行调节两个数字让图出在自己屏幕的某个位置 %% 定义字体和字号大小 %% 通常的SCI一般Arial字体和10字号通用 fontnamed='Arial';%字号名字 ssize=10;%字号大小 %% 如果是中文论文可以相应的更改字号名字如下 % '华文中宋' '华文仿宋' '华文宋体' '华文新魏' '华文楷体' % '华文琥珀' '华文细黑' '华文行楷' '华文隶书' '宋体' % '方正姚体' '微软雅黑' '方正舒体' '新宋体' % '幼圆' '楷体' '等线' '隶书' '黑体' %% 一、信号分解并出图 % 加载数据 load data x=data(:,1); y=data(:,2); % 展开信号分解 [imf,residual]=emd(y); residual = residual.*ones(size(y))'; modes = [imf;residual]; %% 构造XYZ数据集 % X轴应该为Imf代表的分量数 [m,n] = size(modes);% m为几个IMF分量;n为分量的数据长度。 X1 = (1:1:m)'; X2 = ones(size(modes)); X = X1.*X2; X = X'; % Y轴应该为Imf代表的分量数据长度 Y1 = (1:1:n); Y2 = ones(size(modes)); Y = Y1.*Y2; Y = Y'; % Z轴呈现的为信号分解的数据(为了使画图更好看所以要调整顺序) Z = modes; Z = [modes(8,:);modes(7,:);modes(6,:);modes(5,:);modes(4,:);modes(3,:);modes(2,:);modes(1,:)]; %% 绘图 plot3(X,Y,Z,'linewidth',1); hTitle = title('Three-dimensional waterfall map'); hXLabel = xlabel('X'); hYLabel = ylabel('Y'); hZLabel = zlabel('Z'); %% 画图的标准格式代码 % text(0.5,0.9,'(a) XXX','fontsize',ssize,'FontName',fontnamed);%,'horiz','center' xlabel('X-axis','fontsize',ssize,'FontName',fontnamed); ylabel('Y-axis','fontsize',ssize,'FontName',fontnamed); zlabel('Z-axis','fontsize',ssize,'FontName',fontnamed); % axis([0 7 0 0.7 50 250]);%XYZ轴的范围 % xticks([1 2 3 4 5 6]);%画格网的时候的小刻度 % xticklabels({'1','2','3','4','5','6'});%加x轴刻度标注 % yticks([0.1 0.2 0.3 0.4 0.5 0.6]);%画格网的时候的小刻度 % yticklabels({'0.1','0.2','0.3','0.4','0.5','0.6'});%加y轴刻度标注 % zticks([50 100 150 200 250]);%画格网的时候的小刻度 % zticklabels({'50','100','150','200','250'});%加z轴刻度标注 set(gca,'linewidth',1,'fontsize',ssize,'FontName',fontnamed); % set(gca,'zticklabel',[]);%z轴不显示 % set(gca,'yticklabel',[]);%y轴不显示 % set(gca,'xticklabel',[]);%x轴不显示 grid on;box on;hold on; %% 画legend %方法一 kk=legend('L8','L7','L6','L5','L4','L3','L2','L1'); set(kk,'location','NorthEast','Box', 'off','fontsize',ssize,'FontName',fontnamed);%'orientation','horizontal', %方法二 % columnlegend(2,{'L1','L2','L3','L4','L5','L6'},'North');%表示一行放三个图例以及图例的位置 %% Matlab中有许多位置可以选择: % 'North' inside plot box near top % 'South' inside bottom % 'East' inside right % 'West' inside left % 'NorthEast' inside top right (default for 2-D plots) % 'NorthWest' inside top left % 'SouthEast' inside bottom right % 'SouthWest' inside bottom left % 'NorthOutside' outside plot box near top % 'SouthOutside' outside bottom % 'EastOutside' outside right % 'WestOutside' outside left % 'NorthEastOutside' outside top right (default for 3-D plots) % 'NorthWestOutside' outside top left % 'SouthEastOutside' outside bottom right % 'SouthWestOutside' outside bottom left % 'Best' least conflict with data in plot 与绘图中的数据冲突最小 % 'BestOutside' least unused space outside plot %% 背景颜色 set(gcf,'Color',[1 1 1]) %% 设置完毕后,按照所需分辨率、格式输出 figW = figureWidth; figH = figureHeight; set(figureHandle,'PaperUnits',figureUnits); set(figureHandle,'PaperPosition',[0 0 figW figH]); fileout = '三维瀑布图'; print(figureHandle,[fileout,'.png'],'-r600','-dpng'); %% 一幅图的时候figureWidth = 8.5;figureHeight = 8;调整这两个参数就可以 %定义整幅图出现的在电脑屏幕上的位置以及长和宽 %这里有必要解释一下为什么figureWidth要设置为8.5; %因详细解释需要很长的篇幅,请转公众号观看2023-03-21的文章观看。 figureHandle = figure; figureUnits = 'centimeters'; figureWidth = 8.5; figureHeight = 14; set(gcf, 'Units', figureUnits, 'Position', [20 12 figureWidth figureHeight]); %% 展开信号分解 [imf,residual]=emd(y); residual = residual.*ones(size(y))'; modes = [imf;residual]; %信号重构 d1 = modes(1,:); d2 = modes(2,:); d3 = modes(3,:); d4 = modes(4,:); d5 = modes(5,:); d6 = modes(6,:); d7 = modes(7,:); d8 = modes(8,:); % d9 = modes(9,:); % d10 = modes(10,:); %% 画图 subplot(9,1,1) plot(x,y); ylabel('原信号');hold on; subplot(9,1,2) plot(x,d1); ylabel('d1');hold on; subplot(9,1,3) plot(x,d2); ylabel('d2');hold on; subplot(9,1,4) plot(x,d3); ylabel('d3');hold on; subplot(9,1,5) plot(x,d4); ylabel('d4');hold on; subplot(9,1,6) plot(x,d5); ylabel('d5');hold on; subplot(9,1,7) plot(x,d6); ylabel('d6');hold on; subplot(9,1,8) plot(x,d7); ylabel('d7');hold on; subplot(9,1,9) plot(x,d8); ylabel('d8');hold on; % subplot(11,1,10) % plot(x,d9); % ylabel('d9');hold on; % subplot(11,1,11) % plot(x,d10); % ylabel('d10');hold on; xlabel('X-axis'); %% 背景颜色 set(gcf,'Color',[1 1 1]) %% 图片输出 figW = figureWidth; figH = figureHeight; set(figureHandle,'PaperUnits',figureUnits); set(figureHandle,'PaperPosition',[0 0 figW figH]); fileout = '原始数据分解各分量'; print(figureHandle,[fileout,'.png'],'-r600','-dpng');
3 如何绘制满足 SCI 要求的单幅图
单幅图在我看来就是一行一列的子图,只是他的子图只有一个而已。持续关注后期会更新符合 SCI 要求的一行两列的子图、一行三列的子图、两行两列的子图、两行三列的子图、两行一列的子图、三行一列的子图、六行一列的子图,这是我目前 SCI 绘制过程中常遇到的图形绘制格式。
这里有必要解释一下为什么 figureWidth 要设置为 8.5,这是因为双栏排版的情况下,用于插入图的空间有限。
那么是如何计算的呢,A4 纸规格尺寸:210mm×297mm。A4 纸是由国际标准化组织 ISO 216 定义的,规格为 210mm×297mm,世界上多数国家所使用的纸张尺寸都是采用这一国际标准。
论文页边距的要求为:上 (T):25 mm;下 (B):25 mm;左 (L):20 mm;右 (R):20 mm。
也就是说论文须用 A4(210mm×297mm)标准大小白纸印制,要求纸的四周留足空白边缘,以便装订、复制和批注。每一面的上方(天头)和下方(地脚)应分别留边 25mm,左侧(订口)和右侧(切口)应分别留边 20mm。这是相对于一般的投稿期刊来说的。
那么 210mm- 20mm- 20mm=170mm,则双栏排版的话,留给单栏用于放置图片的空间仅剩 85mm,也即 8.5cm。只有这样出的图,在导入 Word 中的时候,字号大小会保持不变。而若是出图 10cm,导入 Word 后被压缩到 8.5cm,则图中 10 号字体也相应被压缩,已经不是原先的 10 号字体了,这也解释了为什么某些 SCI 中,每幅图的图中字体大小不一。
4 产品代码获取
后台回复关键词:科研绘图第二十二期三维瀑布图