MATLAB绘制双y轴图形两种方法
绘制双y轴图形,可以进行有效的对比呈现,论文中经常用到。
基本方法有两种:
1、plotyy函数:考虑兼容性,从2016版本之后不推荐使用。
2、yyaxis方式:是MATLAB继plotyy之后推出的画双y轴图形的方式。
1、plotyy函数 plotyy(X1,Y1,X2,Y2) plotyy(X1,Y1,X2,Y2,function) plotyy(X1,Y1,X2,Y2,"function1","function2") plotyy(AX1,___) [AX,H1,H2]=plotyy(___) 说明 plotyy(X1,Y1,X2,Y2) 绘制 Y1 对 X1 的图,在左侧显示 y 轴标签,并同时绘制 Y2 对 X2 的图, 在右侧显示 y 轴标签。 plotyy(X1,Y1,X2,Y2,function) 使用指定的绘图函数生成图形。 function 可以是指定 plot、semilogx、semilogy、loglog、stem 的函数句柄或字符向量, 或者是能接受以下语法的任意 MATLAB 函数: h = function(x,y) 例如, plotyy(x1,y1,x2,y2,@loglog) % function handle plotyy(x1,y1,x2,y2,"loglog") % character vector 函数句柄能够用于访问用户定义的局部函数,并能提供其他优势。 plotyy(X1,Y1,X2,Y2,"function1","function2") 使用 function1(X1,Y1) 绘制左轴的数据, 使用 function2(X2,Y2) 绘制右轴的数据。 plotyy(AX1,___) 使用第一组数据的 AX1 指定的坐标区(而不是使用当前坐标区)绘制数据。 将 AX1 指定为单个坐标区对象或由以前调用 plotyy 所返回的两个坐标区对象的向量。 如果您指定向量,则 plotyy 使用向量中的第一个坐标区对象。可以将此选项与前面语法中的任何输入 参数组合一起使用。 [AX,H1,H2] = plotyy(___) 返回 AX 中创建的两个坐标区的句柄,以及 H1 和 H2 中每个绘图的图形 对象的句柄。AX(1) 是左边的坐标区,AX(2) 是右边的坐标区。
2.实例 clc clear all; close all Npoint = 21; x = linspace(0,10,Npoint); y1 = sin(x); y2 = cos(x); figure [ax,p1,p2] = plotyy(x,y1,x,y2,"plot","plot"); set(ax(1),"XColor","k","YColor","b"); %设置x轴为黑色,左边y(也就是y1)轴为蓝色 set(ax(2),"XColor","k","YColor","r"); %设置x轴为黑色,右边y(也就是y2)轴为红色 xlabel("X"); ylabel(ax(1),"Y1"); % left y-axis ylabel(ax(2),"Y2"); % right y-axis title("The relationship of X, Y1 and X, Y2") %以下两行分别设置数据y1,y2的线型、颜色、填充点类型及颜色 set(p1,"linestyle","-","marker","o","color","b","MarkerFaceColor","b"); set(p2,"linestyle","- -","marker","^","color","r","MarkerFaceColor","r"); %以下两行分别设置v数据y1,y2的间距大小 set(ax(1),"yTick",[-1:0.2:1]); set(ax(2),"yTick",[-1:0.1:1]);
运行结果
使用两个 y 轴在一个图上绘制两个数据集。对与左 y 轴关联的数据使用线图。对与右 y 轴关联的数据使用针状图。
程序clc; clear all; close all; x = 0:0.1:10; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); figure [hAx,hLine1,hLine2] = plotyy(x,y1,x,y2,"plot","stem") hLine1.LineStyle = "--"; hLine2.LineStyle = ":"; title("Multiple Decay Rates") xlabel("Time (musec)") ylabel(hAx(1),"Slow Decay") % left y-axis ylabel(hAx(2),"Fast Decay") % right y-axis
运行结果
使用两个 y 轴在一个图表上绘制三个数据集。绘制一个与左 y 轴关联的数据集。使用包含两列的矩阵绘制与右 y 轴关联的两个数据集。
程序clc; clear all; close all; x = linspace(0,10); y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); y3 = 0.2*exp(-0.5*x).*sin(10*x); figure [hAx,hLine1,hLine2] = plotyy(x,y1,[x",x"],[y2",y3"]);
运行结果
3.yyaxis函数方式 yyaxis 创建具有两个 y 轴的图 语法 yyaxis left yyaxis right yyaxis(ax,___) 说明 yyaxis left 激活当前坐标区中与左侧 y 轴关联的一侧。后续图形命令的目标为左侧。 如果当前坐标区中没有两个 y 轴,此命令将添加第二个 y 轴。如果没有坐标区, 此命令将首先创建坐标区。 yyaxis right 激活当前坐标区中与右侧 y 轴关联的一侧。后续图形命令的目标为右侧。 yyaxis(ax,___) 指定 ax 坐标区(而不是当前坐标区)的活动侧。如果坐标区中没有两个 y 轴, 此命令将添加第二个 y 轴。指定坐标区作为第一个输入参数。使用单引号将 "left" 和 "right" 引起来。
4.实例
程序clc; clear all; close all; 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。创建 hwydata 中的第五列对左侧 y 轴的散点图。添加标题和轴标签。
程序clc; clear all; close all; load("accidents.mat","hwydata") ind = 1:51; drivers = hwydata(:,5); yyaxis left scatter(ind,drivers) title("Highway Data") xlabel("States") ylabel("Licensed Drivers (thousands)") %创建 hwydata 中的第七列对右侧 y 轴的另一个散点图。然后为右侧 y 轴添加标签。 pop = hwydata(:,7); yyaxis right scatter(ind,pop) ylabel("Vehicle Miles Traveled (millions)")
运行结果
使用 hold on 命令基于左侧 y 轴绘制两个线条。
程序clc; clear all; close all; x = linspace(0,10); yl1 = sin(x); yl2 = sin(x/2); yyaxis left plot(x,yl1) hold on plot(x,yl2)
运行结果
程序 clc; clear all; close all; x = linspace(0,10); yl1 = sin(x); yl2 = sin(x/2); yyaxis left plot(x,yl1) hold on plot(x,yl2) %基于右侧 y 轴绘制两个线条。hold 命令同时影响左侧和右侧 y 轴,因此您不需要再次发出此命令。完成绘图后,关闭 hold。 yr1 = x; yr2 = x.^2; yyaxis right plot(x,yr1) plot(x,yr2) hold off
运行结果
程序 clc; clear all; close all; x = linspace(0,10); yl1 = sin(x); yl2 = sin(x/2); yyaxis left plot(x,yl1) hold on plot(x,yl2) %基于右侧 y 轴绘制两个线条。hold 命令同时影响左侧和右侧 y 轴,因此您不需要再次发出此命令。完成绘图后,关闭 hold。 yr1 = x; yr2 = x.^2; yyaxis right plot(x,yr1) plot(x,yr2) hold off % 通过激活左侧并使用 cla 命令来清除左侧。 yyaxis left cla
运行结果
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙
频频失控的特斯拉不应该反思吗?如何能令高速行驶的车辆迅速安全停下来?对这个问题最感兴趣的应该非马斯克莫属了吧!如果我能回答这个问题,那么我一定能和马斯克成为好朋友。前两天刷到一位网友爆料某某拉电动车行驶中会出现
感谢竞争今年第二代骁龙8天玑9200都放心了今天上午,vivo韩伯啸发文表示,天玑9200游戏表现不错,拍照方面进步也有点出乎意料。感谢竞争,让今年的平台飞速式跨越,所有旗舰平台都可以放心了。目前联发科和高通都推出了自家的新
利用先进的电源管理技术满足5G通信和数据中心应用需求在莫哈韦沙漠边缘的一根25米桅杆上,一台5G无线电收发机暴露在灼热的环境中。无线电组件越小越轻,无线电电子系统的效率越高,产生的热量就越少,系统就越容易保持冷却和正常运行。在一个占
今天,来破解微信最烦人的地方大家好,我是笑了蛋蛋说起占用手机空间最大的App,微信必有其名,一是因为用的多,二是因为微信中发送的任何文件都被扔到了本地,时间一长,自然会积累出一大堆缓存文件。前不久分享了手机端
首发天玑9200,vivoX90性能澎湃,带来全新电竞体验最近,vivo在新品发布会上推出了vivoX90系列,新机发布后备受关注。其中vivoX90的性能表现相当突出,首发天玑9200,通过双芯加持,成为全新一代天玑之王。同时vivoX
干掉苹果华为?三星新机将支持最强卫星通信可以发图片和打电话要说今年手机整体和去年的手机相比,其实在外观上没有什么创新,硬件上也只是常规升级,唯一的几个亮点应该就是在快充和拍照上了,比如200W以上的超大功率快充终于出现在手机上,同时2亿像
跨境电商综合试验区再扩围三十三地获批新华社北京11月25日电经济参考报11月25日刊发文章跨境电商综合试验区再扩围三十三地获批。文章称,11月24日,国务院关于同意在廊坊等33个城市和地区设立跨境电子商务综合试验区的
从治乱到提质上市公司高质量发展开启新篇章丨财经头条推动提高上市公司质量三年行动方案(20222025)近日印发,标志着推进上市公司高质量发展开启了崭新的篇章。上海交通大学上海高级金融学院教授陈欣表示,提高上市公司质量不光是证监会和
(财经行情)人民币市场汇价(11月25日)新华社北京11月25日电中国外汇交易中心11月25日受权公布人民币对美元欧元日元港元英镑澳元新西兰元新加坡元瑞士法郎加元林吉特卢布兰特韩元迪拉姆里亚尔福林兹罗提丹麦克朗瑞典克朗挪威
房地产已经明显成为本轮行情的引爆点了但凡有10年以上投资经验的都会理解到,市场在底部周期的时候,很多时候都会一直调整,调整的时间长短完全是根据政策驱动力,如果政策在周期底部的时候往一个方向强力刺激,那么市场就会快速走
牵手徕卡难阻手机下滑,小米加速投向造车文观察者网吕栋临近年底,随着高通联发科等手机处理器厂商接连发布新品,国内安卓品牌也开始随之密集上新,近期无论是vivo荣耀还是OPPO,均更新了部分手机产品线。小米虽然要等到下月才