三个实例搞定MATLAb二维曲线图(plot绘制图像)

https://blog.csdn.net/zyqblog/article/details/60965988

实例一:多子图、命令plot、图形标识(图名和横纵坐标)演示






  • 多子图:subplot (m,n,k) 一个窗口划分成mn个小块,每个小块存放一个子图,k是子图的编号。 编号规则是: 从左到右边,从上到下依次编号。


%% 定义函数
  t = (0:pi/50:2*pi);          % 列向量  101*1
  k = (0.4 :0.1 :1);            % 行向量  1*7
  y = cos(t)*k ;                % 矩阵101*7
%% 画第一幅子图
  subplot(2,2,1);       %操作两幅子图中的第一幅  
  plot(t,y,r,LineWidth,1.5 );    %画图,t是横坐标,y是纵坐标,属性    lineWidth的值是1.5(即线宽度为1.5), 颜色为红色(手动指定)
  title(y随t的变化图);            %图名
  xlabel(t);                    %横坐标轴名
  ylabel(y = cos(t)*k );         %纵坐标轴名
%%  画第二幅子图
  subplot(2,2,2);       %操作两幅子图中的第二幅  
  plot(k,y,LineStyle,:);    % 线的形状是虚点线,色彩是彩色的,当有多条线,且不指定时,按照默认的色彩次序用细实线绘制多条曲线
  title(y随k的变化图);           %图名
  xlabel(k);                    %横坐标轴名
  ylabel(y = cos(t)*k );        %纵坐标轴名
%% 画第三幅子图
  subplot(2,2,3);       %操作两幅子图中的第三幅   
  plot(t,y,k,y , Marker,*,MarkerSize,7.0);    % 一幅图上有两个数据集,设置数据点形为*,大小是7.0
  title(y随两种参数的两种变化图);         %图名
  xlabel(k);                          %横坐标轴名
  ylabel(y = cos(t)*k );              %纵坐标轴名

 


三个实例搞定MATLAb二维曲线图(plot绘制图像)

 

 

 

 

 

实例二:坐标轴的控制、图形标识(图例、注释)、多次叠绘、图像句柄、分格线






  • 多次叠绘: 在已有图像的上再绘制图像
%% 定义函数
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = cos(x);
%% 画图/多次叠绘
F1 = plot(x,y2)  %设置图像的句柄为F1
set(F1,LineStyle,-.,color,b);%对F1的图像进行设置
hold on         %在y1图像的基础上,再绘制y2图像
F2 = plot(x,y1,r)    %设置图像的句柄为F1
set(F2,color,r);    %对F1的图像进行设置
%% 加注释(完全可以用图形化界面工具来做)
text(3,0.1,{\fontsize{15}\leftarrow这个地方好陡峭});
%% 加网格
grid on;   %应用分格线(网格)
set(gca,xtick,[0:0.5:7]) ;    % 修改网格间隔。获得gca句柄(坐标轴的句柄),设置xtick(x轴网格)从0~7,间隔是0.5
set(gca,ytick,[-1 ;-0.6;0;0.6;1]);   %固定网格线
%% 加图例(完全可以用图形化界面工具来做)
h = legend([F2,F1],sin(x),cos(x));      %加一个图例,句柄h。 指明F2是sin(x),F1是cos(x)
set(h,fontsize,16,color,k,edgecolor,r,textcolor,w) ;  %对图例h进行精细设置
%% 坐标轴控制
axis([0,2*pi-0.4,-0.8,1]); %将横坐标范围设定到0~2*pi-0.4,纵坐标范围设定到-0.8~1
%% 横纵坐标的名称
title({\fontsize{14}\bfsin(x)和cos(x)的曲线});       
xlabel({\fontsize{14}\bft\rightarrow})    ;
ylabel({\fontsize{14}\bfy})    ;
%% 拆分图例,能够让图例中的F1和F2分离开,各自都能相互移动
ax1 = axes(position,get(gca,position),visible,off);
legend(ax1,F1,sin(x),location,northwest);
ax2 = axes(position,get(gca,position),visible,off);
legend(ax2,F2,cos(x),location,northeast);

 

 

 

三个实例搞定MATLAb二维曲线图(plot绘制图像)

 

 

 



实例三:双纵坐标、新建图像






  • 双纵坐标: 一个x自变量,有两个y函数对于之对应。
  • 新建图像: 在软件打开一张图像后,运行下一个代码,再打开一张图像,而不是把原来的图像关闭

 

%% 定义函数
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
%% 画图
figure;  % 新建一个图像
[AX,H1,H2] = plotyy(x,y1,x,y2); %返回在AX中创建的两个轴的句柄和来自H1和H2中的每个图的图形对象的句柄。 AX(1)是左轴,AX(2)是右轴。
%% 设置两个纵坐标的名称
set(get(AX(1),ylabel),String,Slow Decay)  %第一个纵坐标的名称
set(get(AX(2),ylabel),String,Fast Decay)   %第二 个纵坐标的名称
%上述两行代码可以用以下两行代码替换。
%ylabel(AX(1),Slow Decay) % left y-axis
%ylabel(AX(2),Fast Decay) % right y-axis
%% 设置两个纵坐标的样式
set(H1,LineStyle,--)      %设置虚线
set(H2,LineStyle,:)       %设置为点线
%% 设置标题和横坐标
xlabel(Time (\musec))            %横坐标的名称
title(Multiple Decay Rates)  %标题

 

 

三个实例搞定MATLAb二维曲线图(plot绘制图像)

 

 

·---------------------------------------补充201904-----------------------------------------------------------------

一个小参考绘图代码

figure
x=1:10:200 ;
f1 = semilogy(x,t20(1:10:200,1));  
hold on ;
f2 = semilogy(x,t20(1:10:200,2));
hold on ;
f3 = semilogy(x,t20(1:10:200,3));
set(f1,Color,r,...     
       LineStyle,-,...
       LineWidth,1.5,...
       Marker,^,...
       MarkerSize,10 ...
   );
set(f2,Color,k,...      
       LineStyle,-,...
       LineWidth,1.5,...
       Marker,o,...
       MarkerSize,10 ...
   );
set(f3,Color,b,...      
       LineStyle,-,...
       LineWidth,1.5,...
       Marker,d,...
       MarkerSize,10 ...
   );
h = legend([f1,f2,f3],HB-GOA,IGPSO,BASFPA); %设置图例
set(h,fontsize,15) ; 
set(f1,defaultfigurecolor,w) % 设置周围颜色为白色
set(gca,FontSize,13);  % 设置坐标轴刻度和坐标轴文字的大小
xlabel(迭代次数,FontSize,20) ; % 重新设置坐标轴文字的大小
ylabel(目标函数值,FontSize,20) ;

 

三个实例搞定MATLAb二维曲线图(plot绘制图像)

上一篇:AutoCAD 2011教程:用曲面命令制作一顶三维帽子建模


下一篇:文件的写