1、plotyy(x1,y1,x2,y2) (此方法不推荐使用)
两条曲线x1-y1、x2-y2分别以左右纵轴为纵坐标。
x1 = 0:0.1:5;
y1 = exp(-x1/3);
x2 = 0:0.1:5;
y2 = sin(2*x2);
plotyy(x1,y1,x2,y2)
legend('y1','y2','location','southwest');
title('plotyy exam')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2、yyaxis (推荐使用)
创建具有两个 y 轴的图
①yyaxis left: 激活当前坐标区中与左侧 y 轴关联的一侧。后续图形命令的目标为左侧。如果当前坐标区中没有两个 y 轴,此命令将添加第二个 y 轴。如果没有坐标区,此命令将首先创建坐标区。
②yyaxis right: 激活当前坐标区中与右侧 y 轴关联的一侧。后续图形命令的目标为右侧。
③yyaxis(ax,___): 指定 ax 坐标区(而不是当前坐标区)的活动侧。如果坐标区中没有两个 y 轴,此命令将添加第二个 y 轴。指定坐标区作为第一个输入参数。使用单引号将 ‘left’ 和 ‘right’ 引起来。
例1、绘制带有两个 y 轴的数据图
创建左右两侧都有 y 轴的坐标区。基于左侧 y 轴绘制一组数据的图。然后使用 yyaxis right 激活右侧,使后续图形函数作用于该侧。基于右侧 y 轴绘制第二组数据的图,并为右侧 y 轴设置范围。
x = linspace(0,10);
y = sin(3*x);
yyaxis left %激活y轴左侧绘制函数y
plot(x,y)
z = sin(3*x).*exp(0.5*x);
yyaxis right %激活y轴右侧绘制函数z
plot(x,z)
ylim([-150 150])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
例2、为每一侧添加标题和轴标签
创建具有两个 y 轴的图,并为每一侧添加标题和轴标签。
从示例文件 accidents.mat 加载矩阵 hwydata。基于左侧 y 轴和 hwydata 中的第五列数据创建一个散点图。添加标题和轴标签。
x = linspace(0,10);
y = sin(3*x);
yyaxis left %激活y轴左侧绘制函数y
plot(x,y)
ylabel('函数y的取值范围'); %给y轴左侧添加标签
z = sin(3*x).*exp(0.5*x);
yyaxis right %激活y轴右侧绘制函数z
plot(x,z)
ylim([-150 150]);
ylabel(‘函数z的取值范围’); %给y轴右侧添加标签
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
例3、在每一侧绘制多组数据
x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left %y轴左侧绘制yl1和yl2两个函数
plot(x,yl1,x,yl2)
- 1
- 2
- 3
- 4
- 5
x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left %y轴左侧绘制yl1和yl2两个函数
plot(x,yl1,x,yl2)
yr1 = x;
yr2 = x.^2;
yyaxis right %y轴右侧绘制yr1和yr2两个函数
plot(x,yr1,x,yr2)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left %y轴左侧绘制yl1和yl2两个函数
plot(x,yl1,x,yl2)
% ylabel('yl1、yl2函数')
yr1 = x;
yr2 = x.^2;
yyaxis right %y轴左侧绘制yr1和yl2两个函数
plot(x,yr1,x,yr2)
ylabel(‘yr1、yr2函数’)
yyaxis left %通过激活左侧并使用cla命令来清除左侧函数
cla
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
例4、控制每侧的颜色
通过将色序设置为您想使用的两种颜色,为坐标区的每侧指定颜色方案。从 R2019b 开始,可以使用 colororder 函数设置色序。然后,基于左侧 y 轴和右侧 y 轴分别绘制两个线条。添加一个图例。
colororder({'b','m'}); %使用 colororder 函数设置色序
x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left %y轴左侧绘制yl1和yl2两个函数
plot(x,yl1,x,yl2)
ylabel(‘yl1、yl2函数’)
yr1 = x;
yr2 = x.^2;
yyaxis right %y轴左侧绘制yr1和yl2两个函数
plot(x,yr1,x,yr2)
ylabel(‘yr1、yr2函数’)
legend(‘yl1’,‘yl2’,‘yr1’,‘yr2’,‘location’,‘southwest’)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16