(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. 分享到QQ空间、新浪微博、腾讯微博的代码

    今天公司原来的分享代码,在IE下有问题.网上找了下网上的分享代码. 给网页加上分享代码,借助网友的力量推广网站,目前已经很流行了 以下是网页代码 QQ空间分享代码如下: <a href=&quo ...

  2. Effective Java 27 Favor generic methods

    Static utility methods are particularly good candidates for generification. The type parameter list, ...

  3. JavaScript Patterns 2.12 Writing API Docs

    Free and open source tools for doc generation: the JSDoc Toolkit (http://code.google.com/p/jsdoc-too ...

  4. JavaScript Patterns 2.9 Coding Conventions

    It’s important to establish and follow coding conventions—they make your code consistent, predictabl ...

  5. linux 同步IO: sync msync、fsync、fdatasync与 fflush

    最近阅读leveldb源码,作为一个保证可靠性的kv数据库其数据与磁盘的交互可谓是极其关键,其中涉及到了不少内存和磁盘同步的操作和策略.为了加深理解,从网上整理了linux池畔同步IO相关的函数,这里 ...

  6. js实现(全选)多选按钮

    第一种,全部选中: <html> <head> <title>复选框checked属性</title> <script language=&quo ...

  7. 烂泥:虚拟化KVM安装与配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近打算把公司的服务器全部做成虚拟化,一是跟有效的利用了服务器,二也是对自己是一个学习的机会. KVM的安装与配置步骤如下: 1. 查看是否支持虚拟化 ...

  8. CentOS6.3下安装VSFTP服务

    CentOS下安装FTP服务器: 第一步,检查服务器端是否已经安装FTP:[root@localhost centos]# rpm -q vsftpd 如果出现的是:[root@localhost c ...

  9. JavaScript中奇葩的假值

    通常在以下语句结构中需要判断真假 if分支语句 while循环语句 for里的第二个语句 如 if (boo) { // do something } while (boo) { // do some ...

  10. xamarin.android之 Android 4.4+ 获取图片真实路径

    Android 4.4以下 选择图片是可以获取到图片路径的.高于Android 4.4获取图片路径只是获取到一个图片编号. 所以需要针对Android版本进行路径解析: #region 高于 v4.4 ...