Matlab中yyaxis函数的使用

目录

语法

说明

例子

绘制带有两个 y 轴的数据图

在每一侧绘制多组数据

控制每侧的颜色

 控制单个绘图的颜色

 为特定坐标区添加第二个 y 轴


yyaxis函数是创建两个 y 轴的图。

语法

yyaxis left

yyaxis right

yyaxis(ax,___)

说明

        yyaxis left 激活当前坐标区中与左侧 y 轴关联的一侧。后续图形命令的目标为左侧。如果当前坐标区中没有两个 y 轴,此命令将添加第二个 y 轴。如果没有坐标区,此命令将首先创建坐标区。

        yyaxis right 激活当前坐标区中与右侧 y 轴关联的一侧。后续图形命令的目标为右侧。

        yyaxis(ax,___) 指定 ax 坐标区(而不是当前坐标区)的活动侧。如果坐标区中没有两个 y 轴,此 命令将添加第二个 y 轴。指定坐标区作为第一个输入参数。使用单引号将 'left' 和 'right' 引起来。

例子

绘制带有两个 y 轴的数据图

        创建左右两侧都有 y 轴的坐标区。基于左侧 y 轴绘制一组数据的图。然后使用 yyaxis right 激活右侧,使后续图形函数作用于该侧。基于右侧 y 轴绘制第二组数据的图,并为右侧 y 轴设置范围。

x = linspace(0,10);
y = sin(3*x);
yyaxis left
plot(x,y)

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])

        如图所示:

为每一侧添加标题和轴标签

        创建具有两个 y 轴的图,并为每一侧添加标题和轴标签。从示例文件 accidents.mat 加载矩阵 hwydata。基于左侧 y 轴和 hwydata 中的第五列数据创建一个散点图。添加标题和轴标签。

load('accidents.mat','hwydata')
ind = 1:51;
drivers = hwydata(:,5);
yyaxis left
scatter(ind,drivers)
title('Highway Data')
xlabel('States')
ylabel('Licensed Drivers (thousands)')

如图所示:

        基于右侧 y 轴和 hwydata 中的第七列数据创建第二个散点图。然后为右侧 y 轴添加标签。

pop = hwydata(:,7);
yyaxis right
scatter(ind,pop)
ylabel('Vehicle Miles Traveled (millions)')

        如图所示:

在每一侧绘制多组数据

        使用 hold on 命令基于左侧 y 轴绘制两个线条。

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1)
hold on
plot(x,yl2)

如图所示:                    

yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1)
plot(x,yr2)
hold off

        基于右侧 y 轴绘制两个线条。hold 命令同时影响左侧和右侧 y 轴,因此不需要再次发出此命令。完成绘图后,关闭 hold。 

如图所示:

        通过激活左侧并使用 cla 命令来清除左侧。          

yyaxis left
cla

如图所示:

 控制每侧的颜色

        通过将色序设置为您想使用的两种颜色,为坐标区的每侧指定颜色方案。从 R2019b 开始,可以使用 colororder 函数设置色序。然后,基于左侧 y 轴和右侧 y 轴分别绘制两个线条。添加一个图例。

colororder({'b','m'})

yyaxis left
y = [1 2; 3 4];
plot(y)

yyaxis right
z = [4 3; 2 1];
plot(z)
legend

        如图所示:

 控制单个绘图的颜色

        通过设置坐标区每侧的色序来控制各个绘图颜色。

        基于左侧坐标轴绘制三组条形图。通过将左侧的色序设置为默认色序,为每个条形序列设置不同的颜色。

yyaxis left
bar(magic(3));
colororder('default')

        基于右侧坐标轴绘制三个散点图。通过将色序设置为一个包含颜色名称的数组,为每个散点图使用不同颜色。也可以使用 RGB 三元组矩阵指定颜色。然后,添加一个图例。

yyaxis right
scatter([1 2 3],[2 5 2],'filled')
hold on
scatter([1 2 3],[3 4 1],'filled')
scatter([1 2 3],[4 2 4],'filled')
hold off
colororder({'r','b','c'})
legend

        如图所示:

 为特定坐标区添加第二个 y 轴

        从 R2019b 开始,您可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。通过指定 ax1 作为 yyaxis 的第一个输入,在顶部坐标区中添加第二个 y 轴。如果不指定坐标区,yyaxis 将向当前坐标区添加第二个 y 轴。

x = linspace(1,10);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
yyaxis(ax1,'left')
plot(ax1,x,sin(x))
yyaxis(ax1,'right')
plot(ax1,x,exp(x))

% Bottom plot
ax2 = nexttile;
plot(ax2,1:10)

        如图所示:

  • 24
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MATLAB绘图yyaxis函数用于在同一图形创建两个y轴,分别位于左侧和右侧。可以使用yyaxis函数切换活动y轴,并在其上绘制数据。通过指定'left'或'right'作为yyaxis的第一个参数,可以选择要在哪个y轴上绘制数据。 例如,以下代码演示了如何使用yyaxis函数MATLAB绘制双轴图形: x = linspace(1, 10); yyaxis left plot(x, sin(x)) % 在左侧y轴上绘制sin函数 yyaxis right plot(x, exp(x)) % 在右侧y轴上绘制exp函数 这段代码将在同一图形绘制sin函数和exp函数,分别在左侧和右侧y轴上。使用yyaxis函数可以方便地在MATLAB实现双轴图形。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MATLAB(五)进阶绘图](https://blog.csdn.net/weixin_45990326/article/details/119145262)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Matlabyyaxis函数使用](https://blog.csdn.net/jk_101/article/details/106408432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值