(1)设定双Y坐标

x=0:0.1:2*pi;

y1=sin(x);

y2=cos(x);

y3=1-sin(x);

[AX]=plotyy(x,y1,x,y2); %双Y坐标的建立

hold on;

plot(x,y3); %左侧坐标再叠加波形

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]); %设定X坐标范围

set(AX(1),’ylim‘,[-1,2],'yTick',[-1:0.2:2]); %设定左侧Y坐标范围

set(AX(2),'ylim',[-1,1],'yTick',[-1:0.5:1]); %设定右侧Y坐标范围

 本程序可以在左侧再叠加分析,至于在右侧再叠加波形待解决。。。

ylabel('voltage(V)')    % 坐标轴上加文字

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 补充:两种设X轴坐标范围的方法

(1)[AX,H1,H2]=plotyy(s,X,s,Y,'plot'); %双Y坐标的建立

         set(gca,'xlim',[0.06,0.08],'xtick',[0.06:0.05:0.08]); %设定X坐标范围

只能针对左边坐标

(2)[AX,H1,H2]=plotyy(s,X,s,Y,'plot'); %双Y坐标的建立

         set(AX(1),'xlim',[0.06,0.08],'ylim',[-40,40],'ytick',[-40:10:40]); %设定左侧X,Y坐标范围

         set(AX(2),'xlim',[0.06,0.08],'ylim',[-600,600],'yTick',[-600:300:600]); %设定右侧X,Y坐标范围

 此方法的一个问题,无法改变其中一个坐标轴图形的颜色

(2)设定双X与双Y坐标

具有两个纵坐标标度的图形

在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]);  %设定左边的X、Y轴

nx=10;ny=6;  %<6>定义两个变量。给下一语句使用

pxtick=0:((5-0)/nx):5;pytick=0:((15-0)/ny):15;   %<7> X轴被分了10格,Y轴被分了6格,pxtick,pytick分别表示向量

set(h_ap,'Xtick',pxtick,'Ytick',pytick,'Xgrid','on','Ygrid','on')   %画出虚线格,'Xgrid','on','Ygrid','on'起到画虚线的作用

h_linet=line(tp,yp,'Color','b');   %<9>画一yp波形,对波形进行颜色设置

set(get(h_ap,'Xlabel'),'String',' 时间 /rightarrow (分) ')  % X横坐标命名

set(get(h_ap,'Ylabel'),'String',' 压力 /rightarrow(/times10 ^{5} Pa )')  %Y坐标命名

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>  % 以上四句语句实现了上X坐标,右Y坐标

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>画yt波形,切记不能缺少Parent

xpm=get(h_at,'Xlim');   %<20>定义新变量

txtick=xpm(1):((xpm(2)-xpm(1))/nx):xpm(2);  %<21> xpm(1)为0,xpm(2)为40,在哪条语句定义的?

tytick=0:((210-0)/ny):210; %<22>  %Y坐标分格

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

  ------------------------------------------------------------------------------------------------------------------

自编语言:

[filename,pathname]=uigetfile({'*.mat'},'open data files')

b=[pathname,filename]

load(b);

s=t(600000:800001);

X=iIV(600000:800001);

Y=vV(600000:800001);

clf reset,h_ap=axes('Position',[0.13,0.13,0.7,0.75]);  %<4>生成一个窗口

set(h_ap,'Xcolor','k','Ycolor','k','Xlim',[0.06,0.08],'Ylim',[-30,30]);  %设定左边的X、Y轴 

nx=5;ny=6;  %<6>定义两个变量。给下一语句使用

pxtick=0.06:((0.08-0.06)/nx):0.08;pytick=-40:((80-0)/ny):40;   %<7> X轴被分了10格,Y轴被分了6格,pxtick,pytick分别表示向量

set(h_ap,'Xtick',pxtick,'Ytick',pytick,'Xgrid','on','Ygrid','on')   %画出虚线格,'Xgrid','on','Ygrid','on'起到画虚线的作用

h_linet=line(s,X,'Color','k');   %<9>画一yp波形,对波形进行颜色设置

set(get(h_ap,'Xlabel'),'String','t(s)')  % X横坐标命名

set(get(h_ap,'Ylabel'),'String','current(A)')  %Y坐标命名

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

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

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

set(h_at,'Yaxislocation','right','Ydir','rev') %<15>  % 以上四句语句实现了上X坐标,右Y坐标

set(get(h_at,'Xlabel'),'String','t(s) ')

set(get(h_at,'Ylabel'),'String',' voltage(V ')

set(h_at,'Ylim',[-600,600]) %<18>

line(s,Y,'Color','k','Parent',h_at)  %<19>画yt波形,切记不能缺少Parent,运行到这一段语句,有一个很让人费解的问题:

X轴的坐标范围是[0.055:0.08],无法与左坐标保持一致,原因待高手解释?最后波形出现后,可以用 property edit 做一下修改,图形完成。

xpm=get(h_at,'Xlim');   %<20>定义新变量

txtick=xpm(1):((xpm(2)-xpm(1))/nx):xpm(2);   %<21> xpm(1)为0,xpm(2)为40,在哪条语句定义的?

tytick=-600:((1200-0)/ny):600; %<22>  %Y坐标分格

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

本程序为7.0版本下,也许别的版本可以用 property edit 解决以上所有的问题,待验证。

 

源文档 <http://bilu.blog.163.com/blog/static/176178129201182943032724/>

matlab建立双坐标的更多相关文章

  1. 如何用尾插法建立双链表(C语言,非循环)

    如何用尾插法建立双链表 其实本来是想完成汪队给的链表快排的作业,但是我写完建立双链表以后就12点了龟龟,明天还要早起QAQ,我菜死了 一,为啥要有双链表 先说单链表吧单链表长这样 他的一个结点结构就是 ...

  2. matlab 双坐标折线图画法

    %%各时段电量需求 clc close all clear all cost_gd = [2200 1800 3800 4600]; cost_bj = [2.7 2.2 1.8 3.6]; cost ...

  3. MATLAB在三维坐标中显示图片 并 使得图片部分透明

    要画一个光路图,本来可以用proe,但是鼠标不好用,有些操作也忘了,用MATLAB画了个.下面是用到的图片. 但是三维坐标中显示彩色图片的目标没有搞定,做了个灰度图,然后用仿射程序将彩色图片贴到了二维 ...

  4. matlab中双站异面直线法定位目标

    calc.m %% 参数信息初始化 [x1,y1,z1]=deal(); [x2,y2,z2]=deal(,,); m1=/; n1=/; p1=^(/)/; m2=; n2=-^(/)/; p2=^ ...

  5. 【MATLAB】设定坐标的轴的范围

    set(gca,'XLim',[0 1.5]);%X轴的数据显示范围set(gca,'XTick',[0:0.1:1.5]);%设置要显示坐标刻度set(gca,'XTickLabel',[0:0.1 ...

  6. R语言barplot双坐标作图

    需要注意的是,设置其中的柱子的宽度,间隔的宽度.有公式如下 width为柱子的宽度 space为间隔宽度 barnumbers 为柱子数量 那么xlim的设置右侧范围为:(width + space) ...

  7. matlab中等间距坐标距离表示不等间距数据值,以及延伸

    1.问题 平时只是用了一下plot的简单画图. x轴或者y轴的大小比例都是按照系统自动的生成. 但是如果出现巨大的比例的时候,如何保证在另一个轴上可以同等机会展示结果呢? 2.程序 这里是自己书写的程 ...

  8. Matlab实现单(双)极性(不)归零码

    Matlab实现单(双)极性(不)归零码 内容大纲 Matlab实现单极性不归零波形(NRZ),0 1 幅值 Matlab实现单极性归零波形(RZ),0 1 幅值 Matlab实现双极性不归零波形,- ...

  9. Matlab plotyy画双纵坐标图实例

    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);[A ...

随机推荐

  1. IOS之UI--小实例项目--综合使用

    前言: 本博文是基于前一个小实例项目:IOS之UI--小实例项目--添加商品和商品名 进行继续综合学习积累的. 内容大纲 01-综合使用01-plist的使用 02-综合使用02-模型取代字典的好处分 ...

  2. 使用cxf构建webservice

    一.简介 cxf是apache下的一个开源的,功能齐全的WebService框架.是由Celtix和XFire两个开源框架组合而成.cxf可以帮助我们使用前端编程模型构建和开发服务,如JAX- WS和 ...

  3. linux指定账号下配置单独的jdk版本

    1.下载tar.gz格式的安装包,上传到服务器,并解压,本例使用jdk-7u79-linux-i586.tar.gz 2.进入指定账户的目录下, vi  .bashrc,添加环境变量并保存:     ...

  4. 排序(qsort sort的使用)

    前情:因平常写代码是常将比较函数弄混(写好了排序还要确认一下-.-!),还是写篇博客,方便以后查阅 C语言qsort函数对int类型数组排序: #include "stdio.h" ...

  5. hdu 2048 神、上帝以及老天爷(错排)

    神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  6. HTML5与触摸界面

    习惯了开发典型的面向电脑端浏览器的网站在开发手机端网站或者移动App的时候面对很多新的问题,这些新的问题,在我看来或多或少会给浏览者在使用网站或App的时候带来不好的用户体验,对于一个产品级应用,用户 ...

  7. Hive tuning tips

    1. limit Hive has a configuration property to enable sampling of source data for use with LIMIT: hiv ...

  8. NOIP2008 普及组T2 排座椅 解题报告-S.B.S

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...

  9. HDU 4568 Hunter 最短路+状压DP

    题意:给一个n*m的格子,格子中有一些数,如果是正整数则为到此格子的花费,如果为-1表示此格子不可到,现在给k个宝藏的地点(k<=13),求一个人从边界外一点进入整个棋盘,然后拿走所有能拿走的宝 ...

  10. 2014 Super Training #4 D Paint the Grid Again --模拟

    原题:ZOJ 3780 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 刚开始看到还以为是搜索题,没思路就跳过了.结 ...