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 \'); %纵坐标轴名
实例二:坐标轴的控制、图形标识(图例、注释)、多次叠绘、图像句柄、分格线
- 多次叠绘: 在已有图像的上再绘制图像
%% 定义函数 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\');
实例三:双纵坐标、新建图像
- 双纵坐标: 一个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\') %标题
·---------------------------------------补充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) ;