用MATLAB对数据进行绘图
在写论文或者写报告的时候,经常需要用MATLAB将仿真数据或者实验数据进行图形化,以便符合论文报告要求以及使其更加美观形象,以下给出了三种情况下的MATLAB绘图代码:
1.绘制单图
1 %绘制单图 2 clear all 3 clc 4 load D:\IC_Design\picture\Journal\tran.txt %读取数据文件 5 data=tran; 6 digits(15); %数据有效位数 7 x=vpa(data(:,1)); 8 y=vpa(data(:,2)); 9 %plot(data); 10 H1=plot(x,y); 11 grid on 12 % box off 13 % title(\'tran\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10) 14 xlabel(\'\itt / \rmns\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 15 ylabel(\'\itV_{\rmO} / \rmmV\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 16 set(H1,\'Linestyle\',\'-\',\'color\',\'k\',\'Linewidth\',1);%设置第一条曲线的线型、颜色、粗细 17 set(gca,\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10)%设置坐标轴字体大小,字型 18 set(gcf,\'color\',\'w\');% 设置背景为白色 19 set(gca,\'XLim\',[0 18e-9]);%X轴的数据显示范围 20 set(gca,\'YLim\',[-0.8 0.8]);%Y轴的数据显示范围 21 set(gca, \'XTick\', [0 2e-9 4e-9 6e-9 8e-9 10e-9 12e-9 14e-9 16e-9 18e-9]) %设置X坐标轴刻度数据点位置 22 set(gca,\'XTickLabel\',{\'0\',\'2\',\'4\',\'6\',\'8\',\'10\',\'12\',\'14\',\'16\',\'18\'}) %设置X坐标轴刻度处显示的字符 23 set(gca, \'YTick\', [-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 ]) %设置Y坐标轴刻度数据点位置 24 set(gca,\'YTickLabel\',{\'-800\',\'-600\',\'-400\',\'-200\',\'0\',\'200\',\'400\',\'800\'}) %设置Y坐标轴刻度处显示的字符 25 set(gcf,\'Position\',[100 100 350 220]);%设置绘图的大小 26 set(gca,\'Position\',[.15 .20 .80 .74]);%设置xy轴在图片中占的比例,可能需要自己微调。 27 %set(gca,\'FontName\',\'Times New Roman\',\'FontSize\',8,\'LineWidth\',1.5); 28 29 %print -f1 G:\output.jpg -djpeg -r800 %输出图形到指定文件夹
2.在一个窗口绘制多子图
1 %在一个窗口绘制多子图 2 % clear all 3 clc 4 x=0:0.1:7; 5 set(gcf,\'Position\',[100 100 350 340]);%设置绘图的大小 6 set(gca,\'Position\',[.15 .20 .80 .74]);%设置xy轴在图片中占的比例,可能需要自己微调。 7 set(gcf,\'color\',\'w\');% 设置背景为白色 8 9 10 h1=subplot(3,1,1); 11 PPP=get(h1,\'pos\');%第NN张子图的当前位置 12 % PPP(3)=PPP(3)+0.04;%向右边延展0.04 13 PPP(4)=PPP(4)+0.05;%向上方延展0.05 14 set(h1,\'pos\',PPP)%根据新的边界设置。 15 16 load D:\IC_Design\picture\Journal\v1.txt %读取数据文件 17 data1=v1; 18 digits(15); 19 x1=vpa(data1(:,1)); 20 y1=vpa(data1(:,2)); 21 F1=plot(x1,y1); 22 ylabel(\'v1 / \rmV\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 23 set(gca,\'YLim\',[-0.2 2]);%Y轴的数据显示范围 24 set(gca, \'YTick\', [ 0 0.6 1.2 1.8 ]) %设置X坐标轴刻度数据点位置 25 set(gca,\'YTickLabel\',{\'0\',\'0.6\',\'1.2\',\'1.8\'}) %设置Y坐标轴刻度处显示的字符 26 set(F1,\'Linestyle\',\'-\',\'color\',\'k\',\'Linewidth\',1);%设置第一条曲线的线型、颜色、粗细 27 set(gca,\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10)%设置坐标轴字体大小,字型 28 % leg1=legend(\'v1\'); 29 % set(leg1,\'box\',\'off\',\'Fontname\',\'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10);%去除图例边框 30 % leg1.ItemTokenSize = [10,9];%调制图例标记长短 31 32 h2=subplot(3,1,2); 33 PPP=get(h2,\'pos\');%第NN张子图的当前位置 34 % PPP(3)=PPP(3)+0.04;%向右边延展0.04 35 PPP(4)=PPP(4)+0.05;%向上方延展0.05 36 set(h2,\'pos\',PPP)%根据新的边界设置。 37 38 load D:\IC_Design\picture\Journal\v2.txt 39 data2=v2; 40 digits(15); 41 x2=vpa(data2(:,1)); 42 y2=vpa(data2(:,2)); 43 F2=plot(x2,y2); 44 ylabel(\'v2 / \rmV\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 45 set(gca,\'YLim\',[-0.2 2]);%Y轴的数据显示范围 46 set(gca, \'YTick\', [ 0 0.6 1.2 1.8 ]) %设置X坐标轴刻度数据点位置 47 set(gca,\'YTickLabel\',{\'0\',\'0.6\',\'1.2\',\'1.8\'}) %设置Y坐标轴刻度处显示的字符 48 set(F2,\'Linestyle\',\'-\',\'color\',\'k\',\'Linewidth\',1);%设置第2条曲线的线型、颜色、粗细 49 set(gca,\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10)%设置坐标轴字体大小,字型 50 set([h1,h2],\'XTick\',[]) %将前两个x坐标不显示xtick 51 % leg2=legend(\'v2\'); 52 % set(leg2,\'box\',\'off\',\'Fontname\',\'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10);%去除图例边框 53 % leg2.ItemTokenSize = [10,9];%调制图例标记长短 54 55 56 h3=subplot(3,1,3); 57 PPP=get(h3,\'pos\');%第NN张子图的当前位置 58 % PPP(3)=PPP(3)+0.04;%向右边延展0.04 59 PPP(4)=PPP(4)+0.05;%向上方延展0.05 60 set(h3,\'pos\',PPP)%根据新的边界设置。 61 62 load D:\IC_Design\picture\Journal\v3.txt 63 data3=v3; 64 digits(15); 65 x3=vpa(data3(:,1)); 66 y3=vpa(data3(:,2)); 67 F3=plot(x3,y3); 68 xlabel(\'\itt / \rmns\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 69 ylabel(\'v3 / \rmV\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 70 set(gca, \'XTick\', [0 2e-9 4e-9 6e-9 8e-9 10e-9 12e-9 14e-9 16e-9 18e-9]) %设置X坐标轴刻度数据点位置 71 set(gca,\'XTickLabel\',{\'0\',\'2\',\'4\',\'6\',\'8\',\'10\',\'12\',\'14\',\'16\',\'18\'}) %设置X坐标轴刻度处显示的字符 72 set(gca,\'YLim\',[-0.2 2]);%Y轴的数据显示范围 73 set(gca, \'YTick\', [ 0 0.6 1.2 1.8 ]) %设置X坐标轴刻度数据点位置 74 set(gca,\'YTickLabel\',{\'0\',\'0.6\',\'1.2\',\'1.8\'}) %设置Y坐标轴刻度处显示的字符 75 set(F3,\'Linestyle\',\'-\',\'color\',\'k\',\'Linewidth\',1);%设置第一条曲线的线型、颜色、粗细 76 set(gca,\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10)%设置坐标轴字体大小,字型 77 % leg3=legend(\'v3\'); 78 % set(leg3,\'box\',\'off\',\'Fontname\',\'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10);%去除图例边框 79 % leg3.ItemTokenSize = [10,9];%调制图例标记长短 80 81 print -f1 G:\v1~v3.jpg -djpeg -r800 %输出图形到指定文件夹
3.在一张图上绘制多条曲线
1 % 在一张图上绘制多条曲线 2 clear all 3 clc 4 5 load D:\IC_Design\picture\Journal\s11.txt 6 data=s11; 7 digits(15); %数据有效位数 8 x1=vpa(data(:,1)); 9 y1=vpa(data(:,2)); 10 H1=plot(x1,y1,\'-\'); 11 12 hold on; 13 load D:\IC_Design\picture\Journal\s12.txt 14 data=s12; 15 digits(15); %数据有效位数 16 x2=vpa(data(:,1)); 17 y2=vpa(data(:,2)); 18 maker_idx = 1:30:length(x2);%避免标记太密集 19 H2=plot(x2,y2,\'-*\',\'MarkerIndices\',maker_idx); 20 21 hold on; 22 load D:\IC_Design\picture\Journal\s21.txt 23 data=s21; 24 digits(15); %数据有效位数 25 x3=vpa(data(:,1)); 26 y3=vpa(data(:,2)); 27 H3=plot(x3,y3,\'--\'); 28 29 hold on; 30 load D:\IC_Design\picture\Journal\s22.txt 31 data=s22; 32 digits(15); %数据有效位数 33 x4=vpa(data(:,1)); 34 y4=vpa(data(:,2)); 35 H4=plot(x4,y4,\'-.\'); 36 37 % grid on 38 box off 39 % title(\'tran\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10) 40 xlabel(\'\it f / \rmGHz\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 41 ylabel(\'\itS / \rmdB\',\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10); 42 % set(H2,\'Linestyle\',\'-\',\'color\',\'k\',\'Linewidth\',1);%设置第一条曲线的线型、颜色、粗细 43 set(findobj(\'Type\',\'line\'),\'Color\',\'k\',\'Linewidth\',1.5)%所有曲线(或者点)颜色一次性都变成黑色 44 set(gca,\'Fontname\', \'Times New Roman\',\'FontWeight\',\'bold\',\'fontsize\',10)%设置坐标轴字体大小,字型 45 set(gcf,\'color\',\'w\');% 设置背景为白色 46 set(gca,\'XLim\',[0 20e9]);%X轴的数据显示范围 47 set(gca,\'YLim\',[-70 10]);%Y轴的数据显示范围 48 set(gca, \'XTick\', [0 2e9 4e9 6e9 8e9 10e9 12e9 14e9 16e9 18e9 20e9]) %设置X坐标轴刻度数据点位置 49 set(gca,\'XTickLabel\',{\'0.0\',\'2.0\',\'4.0\',\'6.0\',\'8.0\',\'10.0\',\'12.0\',\'14.0\',\'16.0\',\'18.0\',\'20.0\'}) %设置X坐标轴刻度处显示的字符 50 set(gca, \'YTick\', -70:10:10) %设置X坐标轴刻度 51 set(gca,\'YTickLabel\',num2str(get(gca,\'YTick\')\',\'%.1f\'))%设置刻度有效位数 52 set(gcf,\'Position\',[100 100 385 250]);%设置绘图的大小 53 set(gca,\'Position\',[.15 .20 .80 .74]);%设置xy轴在图片中占的比例,可能需要自己微调。 54 leg=legend(\'\itS_{\rm11}\',\'\itS_{\rm12}\',\'\itS_{\rm21}\',\'\itS_{\rm22}\'); 55 set(leg,\'box\',\'off\',\'Fontname\',\'Times New Roman\',\'FontWeight\',\'bold\',\'Position\',[0.7 0.2 0.2 0.4],\'fontsize\',10);%去除图例边框 56 leg.ItemTokenSize = [25,9];%调制图例标记长短 57 % set(gca,\'FontName\',\'Times New Roman\',\'FontSize\',8,\'LineWidth\',1.5); 58 % export_fig G:\s11~s22.jpg -djpeg -r800 59 print -f1 G:\s11~s22.jpg -djpeg -r800 %输出图形到指定文件夹
版权声明:本文为huangch1425237207原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。