双坐标画四条曲线
前三条y轴是线性
第四条y轴对数坐标
随便取组数据x=1:5 y1=1 y2=2 y3=3 y4=1 10 100 1000 10000
求大神给出具体程序(ticks,2个ylabel等)
类似上图
绘图代码如下:
% 测试数据
效果图:
追问如果是三条曲线对应对数坐标怎么改
追答我简单解释一下plotyy命令的调用格式你就知道该怎么做了:多数用过这个命令的人都知道其基本调用方式是
plotyy(X1,Y1,X2,Y2)其中X1,Y1,X2,Y2分别是两组曲线横坐标与纵坐标——要注意,是两“组”曲线,而不是两“条”曲线。上面我举的例子中,第二组曲线就是3条(对应的Y2是个矩阵),你如果希望第一组曲线画3条,那么很简单,第一组的数据改成矩阵就可以:
% 测试数据效果如图:
这里,在基本调用方式的基础上,主要用到了两个方面的高级用法:
使用指定的绘图函数。
默认绘图左右轴都使用plot,可以指定使用其他绘图命令,例如,上面的例子中,左轴使用semilogy,右轴使用plot(当然,你也可以把二者互换);
返回绘图句柄。
上面的例子中,把坐标系和曲线的句柄返回到变量,以便后面设置颜色、Tick等属性。
程序如下:
x=1:0.1:5;
y1=x./x;
y2=2*x./x;
y3=3*x./x;
y4=10.^x/10;
[AX,H1,H2] = plotyy(x,y4,x,[y1;y2;y3],'semilogy','plot');
set(H1,'LineStyle','*','Color','m');%设置右侧线型
set(H2,'LineStyle','--','Color','g');%设置左侧线型
set(AX(1),'ylim',[1,10000],'ytick',[10,10^2,10^4]); %右轴的范围
set(AX(2),'ylim',[-2,4],'ytick',[-2,-1,-0,1,2,3]); %左轴的范围及刻度
set(get(AX(1),'Ylabel'),'string','semilog plot','fontsize',15);
set(get(AX(2),'Ylabel'),'string','linear plot','fontsize',15);
xlabel('x');
结果:
如果是三条曲线对应对数坐标怎么改
追答[AX,H1,H2] = plotyy(x,y4,x,[y1;y2;y3],'semilogy','plot');%semilogy是对数坐标,对应左边函数y4。plot是直角坐标,对应右边三个函数[y1;y2;y3]。
三条曲线对应对数坐标,只需要把y4改成对应三条曲线的函数,形式[y5,y6,y7],要用中括号