Matlab plotyy函数的使用及问题总结

简介: MATLAB函数,用来绘制双纵坐标图。 调用格式:   1.plotyy(X1,Y1,X2,Y2):以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。   2.plotyy(X1,Y1,X2,Y2,FUN1):以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。

 MATLAB函数,用来绘制双纵坐标图。

调用格式:

  1.plotyy(X1,Y1,X2,Y2):以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。
  2.plotyy(X1,Y1,X2,Y2,FUN1):以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。
  3.plotyy(X1,Y1,X2,Y2,FUN1,FUN2):以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1、FUN2指定的不同形式的两条曲线。
  4.[AX,H1,H2]=plotyy(...):返回AX中创建的两个坐标轴的句柄以及H1和H2中每个图形绘图对象的句柄。AX(1)为左侧轴,                 AX(2)为右侧轴。

1.左纵轴用于X1-Y1数据对,右纵轴用于X2-Y2数据对。
  2.轴的范围、刻度都自动产生。如果要人工设置,必须使用axis函数。
  3.FUN、FUN1、FUN2可以是MATLAB中所有接受X-Y数据对的二维绘图指令,如plot函数。

 

matlab plotyy xtick的横坐标的设置问题  

 1 [AX,H1,H2] = plotyy(24,0,0,0,'plot');
 2 set(AX(1),'XColor','k','YColor','b');
 3 set(AX(2),'XColor','k','YColor','r');
 4 set(get(AX(1),'Ylabel'),'String','Plasma Glucose (mg/dl)') 
 5 set(get(AX(2),'Ylabel'),'String','Plasma Insulin (pmol/l)') 
 6 set(AX(1),'ylim',[50 250])
 7 set(AX(2),'ylim',[0 600])
 8 set(AX(1),'ytick',50:50:250)
 9 set(AX(2),'ytick',0:100:600)
10 
11 set(AX,'xlim',[0 24])
12 set(AX,'xtick',0:2:24)
13 
14 
15 
16 grid on
17 xlabel('Time (hour)')
View Code

如下图:

 

 

Matlab plotyy画双纵坐标图实例:

 1 x = 0:0.01:20;
 2 y1 = 200*exp(-0.05*x).*sin(x);
 3 y2 = 0.8*exp(-0.5*x).*sin(10*x);
 4 [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
 5 
 6 set(AX(1),'XColor','k','YColor','b');
 7 set(AX(2),'XColor','k','YColor','r');
 8 
 9 HH1=get(AX(1),'Ylabel');
10 set(HH1,'String','Left Y-axis');
11 set(HH1,'color','b');
12 
13 HH2=get(AX(2),'Ylabel');
14 set(HH2,'String','Right Y-axis');
15 set(HH2,'color','r');
16 
17 set(H1,'LineStyle','-');
18 set(H1,'color','b');
19 set(H2,'LineStyle',':');
20 set(H2,'color','r');
21 
22 legend([H1,H2],{'y1 = 200*exp(-0.05*x).*sin(x)';'y2 = 0.8*exp(-0.5*x).*sin(10*x)'});
23 xlabel('Zero to 20 \musec.');
24 title('Labeling plotyy');
View Code

 

 Q:右边用蓝色圈起来的tick能去掉吗?由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tick就会重合在一起.

A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式:
[AX,H1,H2] = plotyy(...)
其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get来处理了,也可以把其ytick关掉。

A:也可以用line语句来画,就没有左边和上边的线了。

Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写?

A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogy

x1=1:0.1:100;
x2=x1;
y1=x1;
y2=x2.^3;
plotyy(x1,y1,x2,y2,@plot,@semilogy)

相关文章
|
2月前
|
算法 数据可视化 数据处理
MATLAB内置函数
【10月更文挑战第6天】本文详细介绍了MATLAB的内置函数和自定义函数,涵盖数学计算、矩阵操作、图形绘制等方面。通过具体代码示例,展示了如何使用内置函数和创建自定义函数,以及它们在性能、灵活性和可读性上的优劣。同时,文章还讨论了函数文件与脚本文件的区别,匿名函数和函数句柄的高级应用,帮助读者更好地利用MATLAB解决复杂问题。
63 1
|
2月前
|
存储 机器学习/深度学习 数据可视化
MATLAB脚本与函数
【10月更文挑战第4天】本文介绍了MATLAB脚本与函数的基本概念及编写方法,涵盖脚本和函数的创建、运行及优缺点,通过示例帮助初学者快速上手。同时,文章还涉及数据类型、控制结构、数据可视化、文件操作、错误处理等内容,提供了丰富的示例和学习资源,助力初学者逐步掌握MATLAB编程。
110 3
|
4月前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
56 1
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于负相关误差函数的4集成BP神经网络matlab建模与仿真
**算法预览:** 图像显示无水印的2022a版MATLAB运行结果 **软件版本:** MATLAB 2022a **核心代码片段:** 省略展示 **理论概述:** NCL集成BP网络利用负相关提升泛化,结合多个弱模型减少错误关联。通过λ参数控制模型间负相关程度,λ>0增强集成效果,提高预测准确性和系统稳健性。
|
6月前
|
算法 数据可视化 数据挖掘
MATLAB中常用的数学函数及其应用示例
MATLAB中常用的数学函数及其应用示例
|
7月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
7月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
211 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
135 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
95 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码