Matlab中的plotyy细讲(双坐标图)

入门

eg1 基本操作

clc,clear,close all;
t=0:0.1:9*pi;
figure; [AX,Ha,Hb]=plotyy(t,sin(t),t,exp(t));				% 绘图并创建句柄
% ----------------- 设置刻度
%set(AX(1),'yTick',[0:0.25:1.25])  							% 设置左边Y轴的刻度
%set(AX(2),'yTick',[0:350]) 								% 设置右边Y轴的刻度
% ----------------- 添加标注
d1=get(AX(1),'ylabel'); set(d1,'string','正弦函数');
d2=get(AX(2),'ylabel'); set(d2,'string','指数函数','fontsize',18);
% ----------------- 设置两个Y轴的颜色
%set(ax(:),'Ycolor','k') 									% 设定两个Y轴的颜色为黑色
% ----------------- 设置线型
set(Ha,'linestyle','-','marker','o','color','r');
set(Hb,'linestyle','-','marker','*','color','b');
% ----------------- 添加图例
hold on;
Hc=line(t,(sin(t)+cos(t))/2);								% 绘图并创建图形句柄
set(Hc,'linestyle','-','marker','s','color','m');
legend([Ha,Hb,Hc],'sin(t)','exp(t)','(sin(t)+cos(t))/2',0); % 加注图例

在这里插入图片描述Matlab中的plotyy用法总结

eg2 三条线,其中两条线用左轴,第三条线用右轴

x=0:0.01:10;
y1=sin(x);
y2=10*cos(x);
y3=0.5*sin(x);
 
[AX,H1,H2]=plotyy(x,[y1;y3],x,y2,'plot');%双轴
set(AX(1),'XColor','k','YColor','M'); %X轴和第一个Y轴的颜色
set(AX(2),'XColor','k','YColor','r'); %X轴和第二个Y轴的颜色
HH1=get(AX(1),'Ylabel');
set(HH1,'String','sin','color','M'); %第一个Y轴标签的的颜色
HH2=get(AX(2),'Ylabel');
set(HH2,'String','cos','color','r'); %第二个Y轴标签的的颜色
 
set(AX(1),'ylim',[-1,1],'ytick',[-1,-0.5,0,0.5,1]); %定第一个Y轴的范围
set(AX(2),'ylim',[-10,10],'ytick',[-10,-5,0,5,10]); %定第二个Y轴的范围
 
set(H1(1),'LineStyle','-','linewidth',1.5,'color','M'); %y1的线型设置
set(H1(2),'LineStyle','--','linewidth',1.5,'color','g');%y3的线型设置
set(H2,'LineStyle','-','linewidth',1.5,'color','r'); %y2的线型设置
legend([H1(1),H1(2),H2],{'y1';'y3';'y2'});
xlabel('x');

MATLAB双轴坐标图的画法

eg3 指定绘图函数

clc,clear,close all;
x=1:0.1:100;
y1=x; 
y2=x.^3;
plotyy(x,y1,x,y2,@plot,@semilogy)

eg4 同时画多个图形

clc,clear,close all
x=linspace(0,10);%构建行向量,第一个元素是0,最后一个元素是10,共默认为100个元素的等差数列
y1=200*exp(-0.05*x).*sin(x);%exp以e为底的指数函数,.*矩阵的对应元素相乘
y2=0.8*exp(-0.5*x).*sin(10*x);
y3=0.2*exp(-0.5*x).*sin(10*x);
[hAx,hLine1,hLine2]=plotyy(x,y1,[x',x'],[y2',y3']);%"'"表示转置矩阵,matlab中矩阵是按列存储

更多设置

在这里插入图片描述Matlab plotyy画双纵坐标

见多识广,熟能生巧

eg5

clc,clear,close all
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,'plot');
% ----------------- 设置坐标轴的颜色
set(AX(1),'XColor','k','YColor','b');
set(AX(2),'XColor','k','YColor','r');
% ----------------- 添加Y轴标注
HH1=get(AX(1),'Ylabel');
set(HH1,'String','Left Y-axis','color','b');
HH2=get(AX(2),'Ylabel');
set(HH2,'String','Right Y-axis','color','r');
% ----------------- 图形设置
set(H1,'LineStyle','-','color','b');
set(H2,'LineStyle',':','color','r');
% ----------------- 添加图例、X轴标注、标题
legend([H1,H2],{'y1 = 200*exp(-0.05*x).*sin(x)';'y2 = 0.8*exp(-0.5*x).*sin(10*x)'});
xlabel('Zero to 20 musec.'); title('Labeling plotyy');

在这里插入图片描述

eg6 两个坐标系组合成双坐标系图

clc,clear,close all
%clf reset;										% 从当前图窗中删除所有图形对象
tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp)); % 压力数据
tt=(0:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*cos(tt)); % 温度数据
% ----------------- 创建笛卡尔(直角)坐标系一
h_ap=axes('Position',[0.13,0.13,0.7,0.75]); 			%<4>
% ----------------- 设置坐标轴颜色、范围、间隔,开启网格
set(h_ap,'Xcolor','b','Ycolor','b','Xlim',[0,5],'Ylim',[0,15]);
nx=10;ny=6; 											%<6>
pxtick=0:((5-0)/nx):5;pytick=0:((15-0)/ny):15; 			%<7>
set(h_ap,'Xtick',pxtick,'Ytick',pytick,'Xgrid','on','Ygrid','on')
set(get(h_ap,'Xlabel'),'String',' 时间 \rightarrow (分) ')
set(get(h_ap,'Ylabel'),'String',' 压力 \rightarrow(\times 10^{5} Pa )')
% ----------------- 添加图形
line(tp,yp,'Color','b'); 						%<9>
% ----------------- 创建坐标系二
h_at=axes('Position',get(h_ap,'Position')); 			%<12>
% ----------------- 设置坐标轴颜色、范围
set(h_at,'Color','none','Xcolor','r','Ycolor','r'); 	%<13>
set(h_at,'Xaxislocation','top') 						%<14>
set(h_at,'Yaxislocation','right','Ydir','rev') 			%<15>降序
set(h_at,'Ylim',[0,210]) 								%<18>
set(get(h_at,'Xlabel'),'String','\fontsize{15}\fontname{隶书} 时间 \rightarrow (分) ')
set(get(h_at,'Ylabel'),'String',' ({\circ}C )\fontsize{15}\leftarrow\fontname{隶书} 零下温度 ')
% ----------------- 添加图形
line(tt,yt,'Color','r','Parent',h_at) 					%<19>
% ----------------- 设置坐标间隔
xpm=get(h_at,'Xlim'); 									%<20>添加图形后才能得到Xlim
txtick=xpm(1):((xpm(2)-xpm(1))/nx):xpm(2); 				%<21>
tytick=0:((210-0)/ny):210; %<22>
set(h_at,'Xtick',txtick,'Ytick',tytick) 				%<23>

在这里插入图片描述Matlab plotyy画双纵坐标图实例

Matlab plotyy函数的使用及问题总结(Up)

  • 28
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MATLABplotyy函数可以用来绘制两个y轴的形,其一个y轴在左侧,另一个在右侧。使用plotyy函数时,需要指定两个y轴的数据和对应的x轴数据,以及两个y轴的标签和颜色等属性。具体的设置方法如下: 1. 定义x轴数据和两个y轴的数据: ```matlab x = :.1:10; y1 = sin(x); y2 = cos(x); ``` 2. 使用plotyy函数绘制形,并设置两个y轴的属性: ```matlab [ax,h1,h2] = plotyy(x,y1,x,y2); ``` 其,ax是一个包含两个y轴的坐标系对象,h1和h2分别是两个y轴上的线条对象。 3. 设置左侧y轴的属性: ```matlab ylabel(ax(1),'sin(x)'); set(ax(1),'YColor','r'); ``` 其,ylabel函数用于设置左侧y轴的标签,set函数用于设置左侧y轴的颜色为红色。 4. 设置右侧y轴的属性: ```matlab ylabel(ax(2),'cos(x)'); set(ax(2),'YColor','b'); ``` 其,ylabel函数用于设置右侧y轴的标签,set函数用于设置右侧y轴的颜色为蓝色。 5. 设置x轴的属性: ```matlab xlabel('x'); ``` 其,xlabel函数用于设置x轴的标签。 6. 设置例: ```matlab legend([h1,h2],'sin(x)','cos(x)'); ``` 其,legend函数用于设置例,[h1,h2]表示要显示的线条对象,'sin(x)'和'cos(x)'分别是对应的标签。 最终的代码如下: ```matlab x = :.1:10; y1 = sin(x); y2 = cos(x); [ax,h1,h2] = plotyy(x,y1,x,y2); ylabel(ax(1),'sin(x)'); set(ax(1),'YColor','r'); ylabel(ax(2),'cos(x)'); set(ax(2),'YColor','b'); xlabel('x'); legend([h1,h2],'sin(x)','cos(x)'); ``` 运行上述代码,即可得到一张包含两个y轴的形。 ### 回答2: MATLAB是一种强大的科学计算软件,可以通过绘制表来可视化数据。plotyyMATLAB一个非常有用的函数,可以在同一个绘制两条不同的y轴,因此用户可以同时查看两个不同的变量。 使用plotyy函数可以分别绘制左右两个y轴,每个y轴也可以设置自己的x轴和线条样式。我们可以通过以下步骤来设置坐标轴: 1. 定义x、y1、y2变量。 2. 使用plotyy函数生成表。 3. 设定y轴标签、y轴上限、下限和颜色。 4. 设定x轴标签、上限、下限和刻度。 5. 添加数据点和线条样式。 下面是一个示例代码: ```matlab x = linspace(0, 10, 100); y1 = 2*sin(x); y2 = 0.5*cos(x); [ax, h1, h2] = plotyy(x, y1, x, y2); ylabel(ax(1), 'y1 Axis Label'); ylabel(ax(2), 'y2 Axis Label'); ylim(ax(1), [-2 2]); ylim(ax(2), [-1 1]); set(ax(1), 'ycolor', 'r'); set(ax(2), 'ycolor', 'b'); xlabel('x Axis Label'); xlim([0 10]); set(h1, 'LineStyle', '-', 'Color', 'r'); set(h2, 'LineStyle', '--', 'Color', 'b'); ``` 此代码将在同一个绘制出y1和y2变量,左侧轴为y1,右侧轴为y2,它们分别使用red和blue进行标识。y轴上下限分别为[-2 2]和[-1 1],x轴范围为[0 10]。y1和y2的线条使用红色实线和蓝色虚线表示。 ### 回答3: 在MATLAB,使用plotyy函数可以将两组数据绘制在同一张表上,并设置两个不同的纵坐标轴。设置坐标轴可以让我们更好地理解数据,使表更具可读性。 以下是MATLAB plotyy函数设置坐标轴的步骤: 1. 调用plotyy函数 首先,我们需要调用plotyy函数,该函数具有以下语法: [hAx,hLine1,hLine2]=plotyy(x1,y1,x2,y2,fun1,fun2) 其,x1和y1是第一组数据的横坐标和纵坐标;x2和y2是第二组数据的横坐标和纵坐标;fun1和fun2是自定义函数句柄,用于设置第一组数据和第二组数据的属性。函数的输出包括一个Axes对象(hAx),以及两个Line对象(hLine1和hLine2),分别对应于第一组数据和第二组数据。 2. 设置第一组数据的纵坐标轴 要设置第一组数据的纵坐标轴,我们可以使用set函数,例如: set(hAx(1),'YLim',[-10,10],'YColor','r') 这里,hAx(1)是绘对象的第一个坐标轴,也就是第一组数据所使用的坐标轴。YLim属性设置该坐标轴的纵坐标范围,YColor属性设置该坐标轴的颜色。 3. 设置第二组数据的纵坐标轴 设置第二组数据的纵坐标轴与设置第一组数据的纵坐标轴类似,只是需要将hAx(1)替换为hAx(2): set(hAx(2),'YLim',[0,50],'YColor','b') 这里,hAx(2)是绘对象的第二个坐标轴,也就是第二组数据所使用的坐标轴。 4. 设置横坐标轴和标题 设置横坐标轴和标题也很简单,只需使用xlabel、ylabel和title函数即可,例如: xlabel('Time (s)') ylabel(hAx(1),'Position (m)','color','r') ylabel(hAx(2),'Velocity (m/s)','color','b') title('Position and Velocity versus Time') 这里,xlabel函数设置x轴的标题;ylabel函数分别设置第一组数据和第二组数据的y轴标题,并指定它们的颜色;title函数设置表的标题。 通过以上步骤,就可以得到一个设置了两个不同纵坐标轴的MATLAB表了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值