龙空技术网

MATLAB绘制双y轴图形两种方法

云龙派 5344

前言:

如今咱们对“matlab参数方程画图”大致比较珍视,朋友们都想要知道一些“matlab参数方程画图”的相关内容。那么小编同时在网上收集了一些对于“matlab参数方程画图””的相关内容,希望小伙伴们能喜欢,大家一起来了解一下吧!

绘制双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 handleplotyy(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.实例

clcclear all;close allNpoint = 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-axisylabel(ax(2),'Y2'); % right y-axistitle('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 leftyyaxis rightyyaxis(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 leftplot(x,y)z = sin(3*x).*exp(0.5*x);yyaxis rightplot(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 leftscatter(ind,drivers)title('Highway Data')xlabel('States')ylabel('Licensed Drivers (thousands)')%创建 hwydata 中的第七列对右侧 y 轴的另一个散点图。然后为右侧 y 轴添加标签。pop = hwydata(:,7);yyaxis rightscatter(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 leftplot(x,yl1)hold onplot(x,yl2)

运行结果

程序

clc;clear all;close all;x = linspace(0,10);yl1 = sin(x);yl2 = sin(x/2);yyaxis leftplot(x,yl1)hold onplot(x,yl2)%基于右侧 y 轴绘制两个线条。hold 命令同时影响左侧和右侧 y 轴,因此您不需要再次发出此命令。完成绘图后,关闭 hold。yr1 = x;yr2 = x.^2;yyaxis rightplot(x,yr1)plot(x,yr2)hold off

运行结果

程序

clc;clear all;close all;x = linspace(0,10);yl1 = sin(x);yl2 = sin(x/2);yyaxis leftplot(x,yl1)hold onplot(x,yl2)%基于右侧 y 轴绘制两个线条。hold 命令同时影响左侧和右侧 y 轴,因此您不需要再次发出此命令。完成绘图后,关闭 hold。yr1 = x;yr2 = x.^2;yyaxis rightplot(x,yr1)plot(x,yr2)hold off% 通过激活左侧并使用 cla 命令来清除左侧。yyaxis leftcla

运行结果

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

作 者 | 郭志龙

编 辑 | 郭志龙

校 对 | 郭志龙

标签: #matlab参数方程画图 #matlab如何设置横坐标刻度 #matlab 相关性关联图