多轴图

在同一幅图中绘制坐标度量单位不同的图形,可以使图形表达更加简练。在有些情况下,多轴图有利于数据对比。

利用plotyy函数可以绘制双轴图。其调用格式为:

plotyy(X1,Y1,X2,Y2) 用标注在图形左侧的y轴单位绘X1和Y1的图形,用标注在图形右侧的y轴单位绘X2和Y2的图形。

plotyy(X1,Y1,X2,Y2,'function') 用字符串“function”指定的函数绘制每个图形。“function”可以是plot,semilogx,semilogy,loglog,stem或所有接受下面语法的MATLAB函数:

h=function(x,y)

plotyy(X1,Y1,X2,Y2,'function1','function2') 对于图形左侧的坐标轴用function1(X1,Y1)绘数据图,对于右侧的坐标轴用function2(X2,Y2)绘数据图。

[AX,H1,H2]=plotyy(...) 返回AX中创建的两个坐标轴的句柄以及H1和H2中每个图形绘图对象的句柄。AX(1)为左侧轴,AX(2)为右侧轴。

利用plotyy命令可以创建两套数据的图形,并同时使用左侧和右侧的y轴。对于每套数据,还可以应用不同的绘图函数。例如,可以在同一幅图中组合线形图和火柴杆图。

code.matlab
t=0:pi/20:2*pi;
y=exp(sin(t));
plotyy(t,y,t,y,'plot','stem')

结果如图2-7所示。

Document Image
\[\]

图2-7 双轴图

可以用plotyy函数在同一幅图中应用线性坐标和对数坐标。

code.matlab
t=0:900; A=1000; a=0.005; b=0.005;
z1=A*exp(-a*t);
z2=sin(b*t);
[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');
axes(haxes(1))
ylabel('Semilog Plot')
axes(haxes(2))
ylabel('Linear Plot')
set(hline2,'LineStyle','--')

生成图2-8。

Document Image
\[\]

图2-8 在双轴图中应用对数坐标