dtczhl 发表于 2009-5-28 13:30

plotyy的y轴刻度显示问题

dt=0.0001; T=15; t=0:dt:T;
g=9.8; L=1; m=10; k=5; theta0=3.1; v0=0;
v=zeros(size(t)); theta=zeros(size(t));
v(1)=v0; theta(1)=theta0;
for n=1:length(t)
    v(n+1)=v(n)+(g*sin(theta(n))-k./m.*v(n)).*dt;
    theta(n+1)=theta(n)-1./L.*v(n).*dt;
end
=plotyy(t,v(1:length(t)),t,theta(1:length(t)),'plot');
set(H1,'linestyle','-'); set(H2,'linestyle','-.');
set(AX(2),'ylim',[-6 6]);
set(get(AX(1),'ylabel'),'string','线速度v(t) m/s');
set(get(AX(2),'ylabel'),'string','角位移 \theta(t)/rad'); xlabel('时间 t/s');
legend(H1,'线速度 v(t)',2); legend(H2,'角位移 \theta(t)',1);

(我的电脑有问题,传不了图片,抱歉)
但我想要的是右侧的y轴显示的是-6:2:6(就像左侧y轴显示的刻度一样)

[ 本帖最后由 ChaChing 于 2009-5-30 20:21 编辑 ]

friendchj 发表于 2009-5-28 14:33

把set(AX(2),'ylim',[-6 6]);
改成
set(AX(2),'yticklabel',-6:2:6);

dtczhl 发表于 2009-5-28 16:29

回复 沙发 friendchj 的帖子

按你的方法只是把y轴的显示给改了,
我的原意是把原来的右侧y轴坐标上下平移或者缩放吧。。从而使左右两侧的y轴能对齐(而不是只改了y轴标签)
应该是在右侧的y轴,先设定范围set(AX(2),'ylim',[-6,6]);这时的左右坐标是对其了
但是右侧y轴的刻度显示却和左侧不一样,我想把这时的右侧y轴跟左侧一样,显示-6:2:6,而不是此时的...-2,-1,0,1,2,3,4

[ 本帖最后由 dtczhl 于 2009-5-28 16:35 编辑 ]

friendchj 发表于 2009-5-28 17:55

在set(AX(2),'ylim',[-6 6]);
后加上
set(AX(2),'yticklabel',-6:2:6);
试试

dtczhl 发表于 2009-5-28 19:18

回复 地板 friendchj 的帖子

不行哦。。。
如果加上set(AX(2),'yticklabel',-6:2:6);左右的数值就不对应了。。。
你运行下就应该知道我想要什么样的效果了。。。
麻烦你了。。。

dtczhl 发表于 2009-5-28 19:40

回复 地板 friendchj 的帖子

原来我想要的是 set(AX(2),'ytick',[-6:2:6])
一直没想到这个东东,,,,,
还是十分感谢你。。学到了yticklabel的用法

friendchj 发表于 2009-5-28 19:51

呵呵,我也刚想到
页: [1]
查看完整版本: plotyy的y轴刻度显示问题