【Matlab】如何设置多个y轴

news2024/11/25 11:25:20

MTALAB提供了创建具有两个y轴的图,通过help yyaxis就能看到详细的使用方式。
在这里插入图片描述
但是如果要实现3个及以上y轴的图,就没有现成的公式使用了,如下图所示。
在这里插入图片描述

具体代码

% 数据准备
x1=0:0.01:10;
y1=sin(x1);
x2=0:0.01:10;
y2=cos(x2);
x3=0:0.01:10;
y3=100*cos(2*x3);
x4=0:0.01:10;
y4=50*cos(2*x4)-50;
% 设置坐标系

ax1=axes('Position',[0.12,0.05,0.7,0.8],'XColor','k',...
    'YColor','r','XTick',[],'YLim',[-3,3]);
    
ax2=axes('Position',[0.12,0.05,0.7,0.8],...
'XAxisLocation','bottom','YAxisLocation','right',...
'Color','none','XColor','k','YColor','k','XTick',[],'YLim',[-3,3]);

ax3=axes('Position',[0.05,0.05,0.77,0.8],...
'XAxisLocation','bottom','YAxisLocation','left',...
'Color','none','XColor','k','YColor','g','XTick',[],'XLim',[-0.9,9],'YLim',[-200,180]);

ax4=axes('Position',[0.12,0.05,0.8,0.8],...
'XAxisLocation','bottom','YAxisLocation','right',...
'Color','none','XColor','k','YColor','b','XTick',[],'XLim',[0,11.5]);

% 展绘数据
h1=line(x1,y1,'Color','r','Parent',ax1);
h2=line(x2,y2,'Color','k','Parent',ax2);
h3=line(x3,y3,'Color','g','Parent',ax3);
h4=line(x4,y4,'Color','b','Parent',ax4);

代码解析

代码结构非常简单,就是建立4个坐标系,然后重叠在一起,分别在4个坐标系画曲线。按照这个结构,如果想要完成5个、6个或更多y轴,直接复制粘贴就好。代码的核心函数是axes函数,通过help axes可以查看具体的用法。该函数的功能是在当前图窗中创建默认的笛卡尔坐标系,并设置坐标系的外观,相关属性可以搜索Axes 属性,有非常多的属性可以设置。

  • Position - 大小和位置,不包括标签边距
    大小和位置,不包括标签边距,指定为 [left bottom width height] 形式的四元素向量。前两个元素决定了坐标系原点的位置(如下图),后两个元素决定了坐标系的大小。 默认情况下,MATLAB 按照归一化的容器单位来测量值。归一化的意思是取值范围是[0,1],1表示的是整个框图的大小。通过设置不同的Position值就能让y轴分布在不同的位置上,一般x轴保持一致。
    在这里插入图片描述
  • Color-背景色
    这个参数一定要设置成none,默认情况下是白色,这样就会互相遮挡,只能看到一条曲线。none代表无颜色,这样就可以好多条曲线展示在一个图上。
  • YAxisLocation - y 轴位置
    y 轴位置取值有left、right、origin,如果是4个轴,一般是两个left,两个right。
  • XAxisLocation - x 轴位置
  • XTick, YTick, ZTick - 刻度值
  • XLim, YLim, ZLim - 最小和最大坐标轴范围
    通过调整这几个参数,配合Position参数,可以让曲线都显示在中间区域。
  • XColor, YColor, ZColor - 轴线、刻度值和标签的颜色

其他个性化属性,可以参考MALTAB帮助文档【Axes属性】。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:详解C++11 线程(一):MingGW 各版本区别及安装说明

MingGW 各版本区别一:MinGW、MinGW-w64 简介二:MinGW 各版本参数说明三:下载解压一:MinGW、MinGW-w64 简介 MinGW(全称为 Minimalist GNU for Windows),它实际上是将经典的开源 C 语言编译器 G…

Serviceaccount

K8S鉴权 目录 K8S鉴权 什么是RBAC K8S中的RBAC 角色 角色绑定 主体(subject) 角色(Role和ClusterRole) 集群内置权限 cluster-admin admin edit view system开头的y用户 演示 参考 k8s集群相关所有的交互都通过apiserve…

Go 内置运算符 if for switch

算数运算符fmt.Println("103", 103) //103 13 fmt.Println("10-3", 10-3) //10-3 7 fmt.Println("10*3", 10*3) //10*3 30 //除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分 f…

redis Big key (俗称大key)

一、什么是Big Key? 大key,其实不是说比较大的主键,而是值比较大的key。key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。 redis中这些Big Key对应的value值很大,在序列化/反序列化过程中…

SAP MM学习笔记5-SAP中的移动类型实例,对应收货入库以及退货之后的各种情况

对应现实的情况,SAP中有各种各样的收货模式。在SAP中使用移动Type来对应这些情况。 最常用的就是 移动Type 101 收货。没有意外情况,就是正常的收货。 以下是我调查及验证的结果,如果有错误,请指正,谢谢。 移动Type…

腾讯云企业网盘2.5版本全新发布啦!!!

腾讯云企业网盘又又又更新啦!本期重点打磨管理协同、企业安全守护能力,同时也不断强化自身产品体验,助力企业高效办公~那么,此次更新具体有什么安全可靠的新功能呢?今天就带大家一起解锁~01协同管理,提升工…

【网络】http协议

🥁作者: 华丞臧. 📕​​​​专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…

C/C++ 操作ini文件(SinpleIni 跨平台库)

最近在学习时,发现自己还不会操作ini文件,想着以前工作时接触到的项目或多或少都要用到ini文件去保存初始化程序的数据;所以赶紧去网上搜索以下C/C操作ini文件都有些什么库可以玩玩;搜索到有: 1. inih:这是…

Dubbo原理简介

Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 作为RPC:支持各种传输协议,如dubbo,hession,json,fastjson,底层采用mina,netty长连接…

SAP 分析云 2023.03 版新功能抢先看

本文介绍了 SAP 分析云2023.03版本的新功能。对于 SAP 分析云季度发布周期 (QRC) 客户,此版本及其功能将作为 QRC 2023 年第2季度版本的一部分提供。本版本主要在仪表盘和故事设计、数据集成、企业计划方面进行了功能更新,来和阿拓一起看看吧&#xff01…

Hive---窗口函数

Hive窗口函数 其他函数: Hive—Hive函数 文章目录Hive窗口函数开窗数据准备建表导入数据聚合函数window子句LAG(col,n,default_val) 往前第 n 行数据LEAD(col,n, default_val) 往后第 n 行数据ROW_NUMBER() 会根据顺序计算RANK() 排序相同时会重复,总数不会变DENSE…

C#要点技术(一) - List 底层源码剖析

1。 ## 常用组件底层代码解析List 底层代码剖析List是一个C#中最常见的可伸缩数组组件,我们常常用它来替代数组,因为它是可伸缩的,所以我们在写的时候不用手动去分配数组的大小。甚至有时我们也会拿它当链表使用。那么到底它的底层是怎么编写…

将Quazip编译成基于32位release版的库时报错的解决方案

开发环境:Win10 Qt5.9.9 注意:阅读本篇文章前,首先阅读Quazip的编译及使用,保姆级教程。 之前写了如何编译Quazip的库,当时是使用MSV2015-64-release来编译的, 具体编译流程可参考之前的文章Quazip的编译及…

3句代码,实现自动备份与版本管理

前言:服务器开发程序、测试版本等越来越多,需要及时做好数据的版本管理和备份,作为21世界的青年,希望这些事情都是可以自动完成,不止做了数据备份,更重要的是做好了版本管理,让我们可以追溯我们…

用Go快速搭建IM即时通讯系统

WebSocket的目标是在一个单独的持久连接上提供全双工、双向通信。在Javascript创建了Web Socket之后,会有一个HTTP请求发送到浏览器以发起连接。在取得服务器响应后,建立的连接会将HTTP升级从HTTP协议交换为WebSocket协议。由于WebSocket使用自定义的协议…

深度学习部署笔记(十): CUDA RunTime API-2.2流的学习

1. 流的定义 流(Stream)是一个基于上下文(Context)的任务管道抽象,是一组由GPU依次执行的CUDA操作序列,其中每个操作可能会使用或产生数据。在一个上下文中可以创建多个流,每个流都拥有自己的任…

Kettle体系结构及源码解析

介绍 ETL是数据抽取(Extract)、转换(Transform)、装载(Load)的过程。Kettle是一款国外开源的ETL工具,有两种脚本文件transformation和job,transformation完成针对数据的基础转换&…

全网最详细的(CentOS7)MySQL安装

一、环境介绍 操作系统:CentOS 7 MySQL:5.7 二、MySQL卸载 查看软件 rpm -qa|grep mysql 卸载MySQL yum remove -y mysql mysql-libs mysql-common rm -rf /var/lib/mysql rm /etc/my.cnf 查看是否还有 MySQL 软件,有的话继续删除。 软件卸…

单线程的 javascript 如何管理任务

要怎么理解 JavaScript 是单线程这个概念呢?大概需要从浏览器来说起。 JavaScript 最初被设计为浏览器脚本语言,主要用途包括对页面的操作、与浏览器的交互、与用户的交互、页面逻辑处理等。如果将 JavaScript 设计为多线程,那当多个线程同时…

Excel职业版本(4)

图表 图表基本结构 组成元素 图表的分类 柱状图 介绍:在竖直方向比较不同类型的数据 适用场景:用于二维数据集,对于不同类型的数据进行对比,也可用于同一类型的数据在不同的时间维度的数据对比,通过柱子的高度来反…