ygh1984 发表于 2008-12-3 10:34:28

请教plotyy

我用plotyy绘图。在后期修改图形时为什么左侧轴对应的图及其坐标轴在后期无法被选中? 谢谢?
a=0:0.1:2.5;
b=-13.429*a.*a+8.0857*a+71.6;
e=acos((1+cos(b*pi/180)).*(1+2*a)-1);
c=e*180/pi;
=plotyy(a,c,a,b,'plot');
set(get(AX(1),'Ylabel'),'string','完全填充临界接触角/°')
set(get(AX(2),'Ylabel'),'string','完全转移临界接触角/°')
xlabel('深宽比r')
title('临界接触角')
set(H1,'LineStyle','--')
legend( '完全转移')

ljelly 发表于 2008-12-3 11:07:01

原帖由 ygh1984 于 2008-12-3 10:34 发表 http://forum.simwe.com/images/common/back.gif
我用plotyy绘图。在后期修改图形时为什么左侧轴对应的图及其坐标轴在后期无法被选中? 谢谢?
a=0:0.1:2.5;
b=-13.429*a.*a+8.0857*a+71.6;
e=acos((1+cos(b*pi/180)).*(1+2*a)-1);
c=e*180/pi;
=pl ...

我试了一下帮助文档中的例子,一样也是不可选的

你可以用get(H1)得到左图的所有属性值
发现属性项Selected设置为'off'

你只需用set(H1,'Selected','on')将其打开
一切皆可选,ok!

ygh1984 发表于 2008-12-3 11:09:02

回复 2# ljelly 的帖子

十分感谢! 可是画出的图形你点击左侧坐标轴的图形好像是选中了。可是真正改变属性的时候根本无法改变!
   而且get(H2) 现实selected 也是off的
       该怎么办那?

[ 本帖最后由 ygh1984 于 2008-12-3 11:23 编辑 ]

ygh1984 发表于 2008-12-3 11:16:12

回复 2# ljelly 的帖子

不对呀! 我用你的办法 画出的图还是无法选中与改变曲线的属性。
   而且get(H2)的时候selected也是off的。

ljelly 发表于 2008-12-3 11:33:14

原帖由 ygh1984 于 2008-12-3 11:16 发表 http://forum.simwe.com/images/common/back.gif
不对呀! 我用你的办法 画出的图还是无法选中与改变曲线的属性。
   而且get(H2)的时候selected也是off的。

是可以选中的,你的图特殊在于左边和右边的纵轴刻度是一样的
你按F1,在help中plotyy给出的小例子中试一下
当你打开后,左边的曲线已经高亮显示,说明选中了
你按一下编辑的箭头,在y轴显示的属性中是可以看现刻度变化了
显示的是左边图的刻度

那你就把他们都打开
如果你觉得这样不方便

可以看AX、H1和H2的属性
通过设置这些属性来达到你要改的东西的目的
这是完全可以做到的

[ 本帖最后由 ljelly 于 2008-12-3 13:58 编辑 ]

kokyo52 发表于 2008-12-3 13:41:07

可以的

句柄用AX(1)、AX(2)或者H1或者 H2都可以
帮助中写道:
    = PLOTYY(...) returns the handles of the two axes created in
    AX and the handles of the graphics objects from each plot in H1
    and H2. AX(1) is the left axes and AX(2) is the right axes.
因此,用set(AX(1),'Selected','on')然后就在图形界面上任意修改

如果要修改那个y轴的,双击之后修改就可以了,但是一定要有上面的那句代码
ps:代码中的句柄好像可以任意换

[ 本帖最后由 kokyo52 于 2008-12-3 13:53 编辑 ]

ljelly 发表于 2008-12-3 13:44:36

PLOTYY(AX,...) plots into AX as the main axes, instead of GCA. If AX
is the vector of axes handles returned by a previous call to PLOTYY,
then the secondary axes will be ignored.

= PLOTYY(...) returns the handles of the two axes created in AX
and the handles of the graphics objects from each plot in H1 and H2.
AX(1) is the left axes and AX(2) is the right axes.

其实这里说的很明白,AX是轴的句柄,H1和H2是图形的句柄

[ 本帖最后由 ljelly 于 2008-12-3 14:30 编辑 ]

taohe 发表于 2008-12-3 21:44:10

plotyy恐怕不支持用这种方式作后期修改。刚才在r2008b中试了一样不行。不过楼主的代码中已经能够获得了两个axis句柄AX(1)和AX(2),有了句柄,我们就可以用set和get轻松、自由的修改特性了。

zp2000 发表于 2008-12-4 20:43:00

原来是这样啊,我以前还以为是我的MATLAB有问题呢,怎么发现一边能选一边不能选,原来是这么回事情,这个我还得好好看看,感觉挺有用的啊

star19831106 发表于 2009-5-27 08:32:45

呵呵
告诉大家一个笨法子
用鼠标可以将两个图像拖开
然后可以一一修改他们的属性
然后再拖回来
就好了。
呵呵!!!!
页: [1]
查看完整版本: 请教plotyy