matlab双坐标轴设置y轴坐标怎么设置

用MATLAB在一个坐标系里同时画个条形图和折线图,两个图分别用一个y轴,同时y轴刻度不同名称不同(就是双轴图),或者有matlab 高手请告知QQ,谢!
本回答由提问者推荐Matlabplotyy画双纵坐标图实例;x=0:0.01:20;;y1=200*exp(-0.05*x).*sin;y2=0.8*exp(-0.5*x).*sin(;[AX,H1,H2]=plotyy(x,y1,x;set(AX(1),'XColorset(AX(2),'XColorHH1=get(AX(1),'Yl
Matlabplotyy画双纵坐标图实例
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');
plotyy画双纵坐
标图实例& title=&[转载]Matlab plotyy画双纵坐标图实例& style=&margin: 0 padding: 0 list-style:&&
Q:右边用蓝色圈起来的tick能去掉吗?由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tic就会重合在一起.
A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式:
[AX,H1,H2] = plotyy(...)
其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get来处理了,也可以把其ytic关掉。
A:也可以用line语句来画,就没有左边和上边的线了。
Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写?
A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogy
x1=1:0.1:100;
plotyy(x1,y1,x2,y2,@plot,@semilogy)
来源:/wang_pw/blog/item/ede4c1fd6e8f2.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,
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)); % 温度数据
% 产生双坐标系图形
clfreset,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&
plotyy画双纵坐标图实例& title=&[转载]Matlab plotyy画双纵坐标图实例& style=&margin: 0 padding: 0 list-style:&&
来源:/goodenoughcui/blog/item/e9a00b8b7ad52d6f9e2fb4d2.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
实例(已验证):
x=0:0.1:2*
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]);
plotyy画双纵坐标图实例& title=&[转载]Matlab plotyy画双纵坐标图实例& action-data=&http%3A%2F%%2Fmiddle%2F49daade& action-type=&show-slide& style=&margin: 0 padding: 0 list-style:
尚存在问题:这种设置方法,对各个轴的最小刻度单位可以设置,但是刻度范围(x取(0~7),y1取(-1~1))不能设置。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
]; sed=[0.105 0.094 0.156 1.264
0.363 0.429 0.731 0.682 0.654 0.290];
[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')
set(ax(:),'Ycolor','k') %设定两个Y轴的颜色为黑色
set(ax(1),'ytick',[0:]); %设置y轴间隔
set(ax(2),'ytick',[0:0.1:1.5])
set(ax,'xlim',[1 12]) % 设置x轴范围
scatter(ax(1),4,22900,'r*')
axes(ax(2));
scatter(4,1.264,'ro')
三亿文库包含各类专业文献、应用写作文书、生活休闲娱乐、幼儿教育、小学教育、专业论文、外语学习资料、高等教育、文学作品欣赏、79Matlab plotyy画双纵坐标图实例等内容。 Matlab Figures (3) —— 叠加作图与多坐标轴
& & & & 毕业季发这么一篇日志似乎不太应景~但鉴于"Matlab Tips"躺在Gmail Task队列最顶端实在是太久了,还是趁着腐败活动的间隙干掉它= =,算是纪念用error、out of memory和死机陪伴我大三大四无数个夜晚的matlab。& & & & 之前两章八了八matlab作图的基本技巧和主要的画图命令。最重要的就是get与set命令,以及如何在Help中查找相关的属性(axes properties, barseries properties, lineseries properties .....)。然而在实际应用中,经常需要把不同类型的图像组合在一起,或者在同一幅图里显示多个坐标轴。本章就主要来讲讲&叠加作图&和&多坐标轴&以及一些零碎的注意事项。&目录1. 叠加作图 && 以线性回归为例2. 双y轴作图3. 多坐标轴4. 其他&
& & 1. hold on进行叠加作图
& & 2. regress命令需要加一个ones作为常数项
& & 3. 调整Postition属性来实现多个坐标轴的组合
& & 4. colormap实际上是一个矩阵,可以通过矩阵操作组合自己需要的map
& & 5. 出图时注意字号和线宽等细节内容&
1. 叠加作图 && 以线性回归为例&& & & & 线性回归图是最常用到的图表之一,用matlab做线性回归比excel复杂一点点(貌似也不止一点点...)。其中就要用到hold on命令来进行不同数据序列在同一坐标轴下的叠加。& & & & 首先来简单地构造X、Y两个数据序列
%% Generate data series
X = (1:30)';
Y = X + randn(30,1);& & & & 因变量Y是在自变量X上增加了一个(0,1)正态分布的误差(randn(m,n)命令是构造一个正态分布,均值为0方差为1,大小为m*n的矩阵)。简单地用scatter(X,Y)命令就可以得到如下的图形&& & & & & & & & & & & & & & & & & & & & & & & & & & & & && & & & &为了画出这些点回归之后的直线,需要先计算出线性回归模型的系数& & & & &[b bint r rint stats] = regress(Y,[X ones(length(X),1)]);& & & & &matlab中用regress命令来实现线性回归,ones(length(X),1)代表常数项,返回的结果中b代表斜率,r代表残差,stats中包含R2及p等信息,具体参见Help中相关内容。之后就可以用如下命令同时画出散点图以及拟合后的直线
hf = figure('Color',[1 1 1],'Position',[300 300 500 500]);
scatter(X,Y,'.'); %%用实心点 %%叠加
plot(X,X*b(1)+b(2),'r'); %%红色直线& & & & & & & & & & & & & & & & & & & & & & & & & & & &&& & & & &如果不加hold on,则plot命令会覆盖掉scatter命令做出的图像& & & & &此外,还可以用annotation命令将拟合后的方程与R2一起做在图中
hf = figure('Color',[1 1 1],'Position',[300 300 500 500]);
scatter(X,Y,'.');
plot(X,X*b(1)+b(2),'r');
ha = annotation('textbox',...
'String',['Y = ' num2str(b(1),'%0.3f') '* X + ' num2str(b(2),'%0.3f') ', R^2 = ' num2str(stats(1),'%0.2f')],...
分享这篇日志的人也喜欢
周五有人进来吗?
你的主播已上線!
只能尬聊了
奋斗吧宝贝…
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Matlab双y轴作图
下载积分:3000
内容提示:Matlab双y轴作图
文档格式:PDF|
浏览次数:39|
上传日期: 10:24:48|
文档星级:
全文阅读已结束,如果下载本文需要使用
 3000 积分
下载此文档
该用户还上传了这些文档
Matlab双y轴作图
官方公共微信

我要回帖

更多关于 matlab设置坐标轴名称 的文章

 

随机推荐