用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 %输出图形到指定文件夹