三个实例搞定MATLAb二维曲线图(绘制图像)
- 多子图:
subplot (m,n,k)
一个窗口划分成m*n个小块,每个小块存放一个子图,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}fsin(x)和cos(x)的曲线}");
xlabel("{fontsize{14}ft
ightarrow}") ;
ylabel("{fontsize{14}fy}") ;
%% 拆分图例,能够让图例中的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") %标题
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。