(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. java基础--温故而知新 (01)

    1 myeclipse是一个eclipse插件.使用java语言开发.进程是javaw.exe--非命令行方式启动.   2 考这些术语的公司,往往都是世界一流的好公司.(技术广度+英语) java ...

  2. SAM4E单片机之旅——21、DMAC之USART回显

    DMAC也可以和外设进行数据交互.之前我们曾使用PDC进行USART的数据回显,这次就使用DMAC完成相同的工作.而且由于DMAC有内部的缓冲区,实现起来更为简单. 一. USART设置 因为之前已经 ...

  3. Effective Java 35 Prefer annotations to naming patterns

    Disadvantages of naming patterns Typographical errors may result in silent failures. There is no way ...

  4. Effective Java 77 For instance control, prefer enum types to readResolve

    The readResolve feature allows you to substitute another instance for the one created by readObject ...

  5. 【VB超简单入门】三、开始编程

    接下来要进入正题了!同学们要认真看咯~ 第一步:安装VB开发IDE 在这里我推荐大家安装的是VB迷你版,现在大多数同学使用win7,这个版本可以在win7上运行的妥妥的~ 下载链接:http://pa ...

  6. hdu 3635 Dragon Balls(并查集)

    Dragon Balls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  7. 由fdopen和fopen想到的

    ISO C并没有规定fdopen,而是POSIX的补充. FILE *fopen(const char *path, const char *mode); FILE *fdopen(int fd, c ...

  8. [转]jquery-confirm

    本文转自:http://craftpip.github.io/jquery-confirm/ Practical Uses These features can practically be used ...

  9. [转]JQuery Ajax 在asp.net中使用总结

    本文转自:http://www.cnblogs.com/acles/articles/2385648.html 自从有了JQuery,Ajax的使用变的越来越方便了,但是使用中还是会或多或少的出现一些 ...

  10. Oracle错误日志:ORA-00257

    今天下午刚启动程序,就报以下错误: Caused by: java.sql.SQLException: ORA-00257: 归档程序错误.在释放之前仅限于内部连接. 经查,是oracle数据库日志满 ...