声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1632|回复: 1

[GUI界面] 使用GUIDE作界面时如何在指定的坐标轴上画多子图

[复制链接]
发表于 2009-12-15 11:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
[local]3[/local]我用GUIDE工具做了个界面,如图1.

图1

图1

要实现这样的功能,按下单个按钮时,在左边的坐标轴上显示“单个角度”的曲线,按下“所有角度”按钮时,要在左边的坐标轴上分子图显示曲线。
但我现在只能实现在坐标轴上重叠显示所有角度的曲线,如图2。当我试图用subplot函数分子图时,界面变成了图3,坐标轴突然变大了,而且盖住了原来界面右边的图,请问这个要怎么办啊?
我画子图的代码如下
在“所有角度”按钮的回调函数中
function allangle_Callback(hObject, eventdata, handles)
% hObject    handle to allangle (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.angper);     %这是左边坐标轴的句柄
cla;
anglelabel={'1','2','3','4','5','6','7','8','9','10','11','12','13'};%设置legend的标题
colorlist={'b','m','c','r','g','y','k'};

for i=1:handles.m-2    %handles.m-2是角度个数
subplot(handles.m-2,1,i);
plot(handles.angle(:,i),colorlist{i});
legendlabel{i}=anglelabel{i};
hold on
end
legend(legendlabel,'location','best');
grid Minor
hold off

[ 本帖最后由 cc2005726 于 2009-12-15 11:08 编辑 ]

图2

图2

图3

图3
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-12-16 16:27 | 显示全部楼层

回复 楼主 cc2005726 的帖子

我这几天的调试,有一种感觉,subplot一句好像是自己创建一个新的坐标轴,把之前在界面上放置的坐标轴都给删掉了,所以在上面图三中可看到,原界面中的两个坐标轴都不见了。而且我在帮助里面看到一句: If the CurrentAxes is nested in a uipanel, the panel is used as the parent for the subplot instead of the current figure. The new axes object becomes the current axes. 所以subplot是把panel当成绘图区域了。

所以我想到了一个不是很好的解决方案:
把左边坐标轴再放在一个panel里,这个panel比坐标轴稍大,则可以用subplot命令在这个panel里画子图了。但是最后显示的界面是大panel里再套个小panel,不是很干净。所以我在想,能不能把panel的可见属性设成不可见呢。试过之后,发现一旦设成不可见,则连带着panel里的坐标轴也看不见了~~

各位有没有什么方法能让panel那个边框不显示,只显示里面的坐标轴啊?

[ 本帖最后由 cc2005726 于 2009-12-16 17:11 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 06:56 , Processed in 0.078717 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表