matlab plotyy legend,Matlab如何在plotyy中设置legend可以显示四条不同的曲线描述

由于我想在一个图中描述四条不同的曲线,而且他们可以分成两种情况,每种情况都有两个参数可以作为一个评价标准。而且这两个评价标准的单位差别很大。例如标准1的数值约为10e-09次方,而标准2的数值约为10e04次方,这样如果用plot直接画的画,可能反映不出标准1的差别(由于标准1的实际数值远远小于标准2),所以我希望通过使用plotyy来进行。下面是我的代码:

clc

clear

em=3.5e-11;

t=586.5;h=674.5;

row=1.7e-08;

c0=1.03e-15;cp=1.22e-15;rs=9.6e003;

w=105:5:485;

r=row./(w.*t).*10e18;

%情况1

c10=em.*[w./h+2.22.*(w./(w+0.76.*h)).^3.19+1.17.*(w./(w+1.51.*h)).^0.76.*(t./(t+4.53.*h)).^0.12];

c20=2.*em.*[1.14.*t./w.*(h./(h+2.06.*w)).^0.09+0.2494+2.005.*(h./(h+0.98.*w)).^1.18];

c=c10+c20;

lopt=sqrt(2.*rs.*(c0+cp)./(r.*c));

kopt=sqrt(rs.*c./(r.*c0));

taop=rs.*(c0+cp)./lopt+rs.*c./kopt+r.*kopt.*c0+0.5.*r.*c.*lopt.*10e07;

bw=1./(2.*w.*taop).*10e07;

bwtaop=bw./taop;

a=kopt./lopt;

[AX,H1,H2]=plotyy(w,taop,w,bwtaop,'plot')

set(get(AX(1),'Ylabel'),'String','标准1','linewidth',2.2)

set(get(AX(2),'Ylabel'),'String','标准2','linewidth',2.2)

set(H1,'LineStyle',':','Marker','o','MarkerSize',3.2)

set(H2,'LineStyle','-','Marker','o','MarkerSize',3.2)

hold on

%情况2

s1=255;

c11=em.*[w./h+2.22.*(s1./(s1+0.76.*h)).^3.19+1.17.*(s1./(s1+1.51.*h)).^0.76.*(2.3.*w./(2.3.*w+4.53.*h)).^0.12];

c21=2.*em.*[1.14.*2.3.*w.*(h./(h+2.06.*s1)).^0.09./s1+0.74.*(w./(w+1.59.*s1)).^1.14+1.16.*(w./(w+1.87.*s1)).^0.16.*(h./(h+0.98.*s1)).^1.18];

cpp=c11+c21;

loptp=sqrt(2.*rs.*(c0+cp)./(r.*cpp));

koptp=sqrt(rs.*cpp./(r.*c0));

taopp=rs.*(c0+cp)./loptp+rs.*cpp./koptp+r.*koptp.*c0+0.5.*r.*cpp.*loptp.*10e07;

ap=koptp./loptp;

bwp=1./((w+s1).*taopp).*10e07;

bwptaopp=bwp./taopp;

[AX,H1,H2]=plotyy(w,taopp,w,bwptaopp,'plot')

set(get(AX(1),'Ylabel'),'String','标准1')

set(get(AX(2),'Ylabel'),'String','标准2')

set(H1,'LineStyle',':','Marker','d','MarkerSize',3.2)

set(H2,'LineStyle','-','Marker','d','MarkerSize',3.2)

xlabel('xlabel')

legend('情况1标准1','情况1标准2','情况2标准1','情况2标准2')

hold off

这样的语句跑出来行不通,他只显示了情况1标准1和情况1标准2这两个描述,现在我想要显示四个描述,请问我该怎么处理呢?

希望能得到大家的答案!

### 回答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图表了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值