MATLAB画双纵轴曲线。

原文地址:Matlab plotyy画双纵坐标图实例作者:gypsy

Matlab plotyy画双纵坐标图实例

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');

set(AX(1),'XColor','k','YColor','b');
set(AX(2),'XColor','k','YColor','r');

HH1=get(AX(1),'Ylabel');
set(HH1,'String','Left Y-axis');
set(HH1,'color','b');

HH2=get(AX(2),'Ylabel');
set(HH2,'String','Right Y-axis');
set(HH2,'color','r');

set(H1,'LineStyle','-');
set(H1,'color','b');
set(H2,'LineStyle',':');
set(H2,'color','r');

legend([H1,H2],{'y1 = 200*exp(-0.05*x).*sin(x)';'y2 = 0.8*exp(-0.5*x).*sin(10*x)'});
xlabel('Zero to 20 musec.');
title('Labeling plotyy');

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)

来源:http://hi.baidu.com/wang_pw/blog/item/ede4c1fd6e51773d5c6008f2.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MATLAB画双纵坐标

具有两个纵坐标标度的图形
在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:
plotyy(x1,y1,x2,y2)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。

双y轴坐标可以用plotyy(x,y1,x,y2)来实现
双x坐标可以用
set(gca,'xaxislocation','bottom','xticklabel',{'0','1','2','3','4'}) (假设x轴的标注为1,2,3,4)
set(gca,'xaxislocation','top','xticklabel',{'0','1','2','3','4'})
进行相应的设置

【 * 例 10.7.3 -1 】制作一个双坐标系用来表现高压和低温两个不同量的过渡过程。

tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp)); % 压力数据

tt=(0:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*cos(tt)); % 温度数据

% 产生双坐标系图形

clf reset,h_ap=axes('Position',[0.13,0.13,0.7,0.75]); %<4>

set(h_ap,'Xcolor','b','Ycolor','b','Xlim',[0,5],'Ylim',[0,15]);

nx=10;ny=6; %<6>

pxtick=0:((5-0)/nx):5;pytick=0:((15-0)/ny):15; %<7>

set(h_ap,'Xtick',pxtick,'Ytick',pytick,'Xgrid','on','Ygrid','on')

h_linet=line(tp,yp,'Color','b'); %<9>

set(get(h_ap,'Xlabel'),'String',' 时间 /rightarrow (分) ')

set(get(h_ap,'Ylabel'),'String',' 压力 /rightarrow(/times10 ^{5} Pa )')

h_at=axes('Position',get(h_ap,'Position')); %<12>

set(h_at,'Color','none','Xcolor','r','Ycolor','r'); %<13>

set(h_at,'Xaxislocation','top') %<14>

set(h_at,'Yaxislocation','right','Ydir','rev') %<15>

set(get(h_at,'Xlabel'),'String','/fontsize{15}/fontname{ 隶书 } 时间 /rightarrow (分) ')

set(get(h_at,'Ylabel'),'String',' ( {/circ}C )/fontsize{15} /leftarrow /fontname{ 隶书 } 零下温度 ')

set(h_at,'Ylim',[0,210]) %<18>

line(tt,yt,'Color','r','Parent',h_at) %<19>

xpm=get(h_at,'Xlim'); %<20>

txtick=xpm(1):((xpm(2)-xpm(1))/nx):xpm(2); %<21>

tytick=0:((210-0)/ny):210; %<22>

set(h_at,'Xtick',txtick,'Ytick',tytick) %<23>

来源:http://hi.baidu.com/goodenoughcui/blog/item/e9a00b8b7ad52d6f9e2fb4d2.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

实例(已验证):

clc;
clear all;
close all;
x=0:0.1:2*pi;
y1=sin(x);
y2=cos(x);
[AX]=plotyy(x,y1,x,y2);
set(get(gca,'xlabel'),'string','X-axis');
set(get(AX(1),'Ylabel'),'string','left Y-axis');
set(get(AX(2),'Ylabel'),'string','right Y-axis');
set(gca,'xTick',[0:0.5:7]);
set(AX(1),'yTick',[-1:0.2:1]);
set(AX(2),'yTick',[-1:0.5:1]);

尚存在问题:这种设置方法,对各个轴的最小刻度单位可以设置,但是刻度范围(x取(0~7),y1取(-1~1))不能设置。
2010-12-23修改

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

clc
clear all
close all
runoff=[10700 11400 15800 22900 43100 40700 50500 46000 41800 35000];
sed=[0.105 0.094 0.156 1.264   0.363 0.429 0.731 0.682 0.654 0.290];
m=1:10;
[ax,h1,h2]=plotyy(m,runoff,m,sed); %h-- line handle
set(get(ax(1),'Ylabel'),'string','Runoff (m^3/s))','color','r') %y1
set(get(ax(2),'Ylabel'),'string','Sediment concentration (kg/m^3)','color','k') %y2
xlabel('Month')
set(h1,'linestyle','-','color','r');   
set(h2,'linestyle','- -','color','k');
legend([h1 h2],'runoff','sediment concentration') %标注两条线
legend('boxoff')
% box off
set(ax(:),'Ycolor','k') %设定两个Y轴的颜色为黑色
set(ax(1),'ytick',[0:10000:100000]); %设置y轴间隔
set(ax(2),'ytick',[0:0.1:1.5])
set(ax,'xlim',[1 12]) % 设置x轴范围
hold on
scatter(ax(1),4,22900,'r*')
axes(ax(2));
hold on
scatter(4,1.264,'ro')

来源:http://hi.baidu.com/imhuanxi/blog/item/a1f69bcadf68a54af21fe7d2.html

MATLAB画双纵轴曲线。相关推荐

  1. 怎么用matlab画双8曲线,MATLAB画双纵轴曲线。

    Matlab plotyy画双纵坐标图实例 x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); ...

  2. MATLAB plot 双纵轴颜色修改方法——适用于所有版本(不限于2019b及以上)

    背景: 画双纵轴 MATLAB 会给出默认的左右纵轴颜色,想搜一下自定义纵轴颜色的方法,发现都是让用MATLAB 2019b 及之后的版本,2019b 及之后的版本可以用如下指令colororder方 ...

  3. Matlab 绘制双纵轴三纵轴图

    三纵轴图 三坐标的图在前文中有所介绍:这次主要讲绘制双轴. matlab 绘制三坐标(轴)图 绘制双纵轴图: yyaxis 简单用法 在MATLAB中,yyaxis可以用于绘制具有两个不同y轴的图形. ...

  4. Matlab 绘制双纵轴图

    Matlab 作为比较常用的一种科学计算语言,其强大的绘图功能是很多软件所不能比拟的.在众多种类的图中,双纵轴图是比较常见的一种图,但网上的众多教程老旧,程序复杂,因此本篇特此来介绍下 Matlab ...

  5. matlab如何画双x坐标,matlab画双坐标图

    整理了一下matlab画双坐标的代码,具体如下.如果想分别设置双坐标的label,可以设置Ylim,YTick和YTickLabel. clc;clear; x=1:20; y1=100*ones(1 ...

  6. matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?

    文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...

  7. matlab画出衰减振荡曲线,matlab程序题复习程序.doc

    1.编写m文件要求利用matlab数值绘图功能画出衰减振荡曲线及其它的包络线.的取值范围是,数值采样间隔点为pi/50,在图中用红色是线段绘出,用蓝色虚线绘出,且两函数作在同一张图上. t 0:pi/ ...

  8. 用matlab画出典型函数,如何用matlab画出函数曲线

    使用matlab绘制函数曲2113线的方法和操作步5261骤如下:1.首先,使用matlabc打开命令行窗口,然后4102直接输入相1653关内容,如下图所示.2.其次,完成上述步骤后,请根据实际情况 ...

  9. python坐标网matplotlib_使用matplotlib画双纵轴坐标

    一.前言 本文主要使用matplotlib,实现双纵轴坐标的图表绘制.笔者python版本为2.7.15. 二.实践及效果 1. 需求 某个有这么一个成绩表,分别是名字,本次成绩以及进步幅度,现在需要 ...

最新文章

  1. numpy使用diagonal函数和sum函数计算矩阵的迹(trace)、使用T函数对矩阵进行转置(transpose matrix)
  2. 利用GNU的parted进行分区
  3. 查找删除Code First Entity Framework基本与最佳添加(add/create),删除(delete/remove),修改(update/modify)操作...
  4. 有关 Conversion to Dalvik format failed with error 1
  5. 数据结构之线性查找和折半查找
  6. camvid数据集使用方法_使用PyTorch处理CIFAR10数据集并显示
  7. 砝码称重 洛谷 1441
  8. python3 mysql库_Python3.7 MySQL 数据库连接
  9. 日常生活开支记账明细_做好这3点,不再白记账
  10. linux中id命令的功能,Linux id命令参数及用法详解
  11. 在SharePoint 2010中创建联系人Web数据库网站
  12. 【路径规划】基于matlab果蝇优化算法机器人路径规划【含Matlab源码 677期】
  13. 平面与网页设计中关于颜色搭配的问题
  14. 我曾做过陈士成,也做过孔乙己,还做过阿Q
  15. Docker 学习新手笔记:从入门到放弃
  16. 360大战QQ演义之一:一场腾讯可能连底裤都输掉的战争!
  17. 本科论文的标准格式是什么样的?
  18. android命令行启动,Android中使用am命令实现在命令行启动程序详解
  19. 2017年问题汇总-待整理
  20. python使用pandas中的to_json函数将dataframe数据写入json文件中

热门文章

  1. 黑产系列01-如何发现黑产情报
  2. Linux网络操作系统期末系统复习题
  3. 产品经理(20) #PRD产品需求文档
  4. Cisco交换机 ——STP
  5. Dropout和BN(层归一化)详解
  6. no openvas scap database found. (tried /var/lib/openvas/scap-data/scap.db)错误
  7. 以太坊:在合约里调用指定地址的另一已部署合约
  8. 前端~css~基准线与行高、行距和半行距/圆角矩形~
  9. 基于弹性云服务器的昇腾AI应用开发随笔【与云原生的故事】
  10. LQA: Time of day is written with a “dot” not a “colon” (13.14 not 13:14)