MATLAB双纵坐标绘图(重要)

本文介绍了在MATLAB中创建双纵坐标图的两种方法:plotyy和yyaxis。yyaxis是推荐的方法,可以方便地控制左右两侧的纵坐标。通过示例展示了如何激活坐标区的左右侧,添加数据,设置轴范围,添加标题和轴标签,以及在同一图中绘制多组数据并控制每侧的颜色。

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')

在这里插入图片描述
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])

在这里插入图片描述
例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轴右侧添加标签

在这里插入图片描述
例3、在每一侧绘制多组数据

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left          %y轴左侧绘制yl1和yl2两个函数
plot(x,yl1,x,yl2)

在这里插入图片描述

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)

在这里插入图片描述

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    


在这里插入图片描述
例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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值