matlab 归一化_【Matlab学习秘籍】绘制多个y轴

98698ac15d2be819c066dcccec65bc2f.png

Matlab在绘图方面非常自由,正规图、私人定制图都不在话下。双y轴图是比较常用的,即同一个x对应两个不同范围的y,Matlab提供了plotyy函数,后续新版本推荐yyaxis函数来代替,相比plotyy函数yyaxis函数更加自由、方便。那么问题来了,一个x对应三个或更多不同范围的y值时怎么办,下面请看我表演。

先看yyaxi的官方帮助文档提供的demo,代码和效果图如下:

x 

f4709d8e86e87fbbb8739a6d7ca5f298.png
yyaxis官方帮助文档demo

在这个基础上,再添加一条曲线,将三个不同范围的y绘制在一个axes里。下面是完整的代码,自行消化、吸收然后化为己用。如果写的不清楚,私聊我提供意见,不胜感激,希望用我的方法能唤醒你的智慧。

% 多y值演示

bc85480ad602c5a67fefd9f3389a61a0.png
多y值demo结果

注意点

以下两段代码,2016B可以忽略,2018B上有点问题。

hold 

0fe378b25143ae184dec847425fec7ca.png
2018B演示结果

解决这个问题的方法也简单,在x最大值处绘制一条线来弥补空白。

【秘籍】

  1. 不同范围的y值统一到同一个水平,比如以第一个y1值为参考,具体的操作方法见代码,分两步走:归一化和反归一化,用到了每组y的最大最小值,反归一化是将归一化后的y映射到y1的范围;
  2. 新建axes专门做y轴,显示数据的真实范围,其中的细节处理见代码,如曲线颜色、背景颜色、标签、刻度位置、边框等等;
  3. 异常情况处理,不要慌,如上面的2018B出现的边框显示不清问题,我想到的解决方法就是在这个位置画一条线来弥补。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值