zing 发表于 2010-8-2 12:52

如何清除坐标轴的信息

function yy( varargin )
if nargin == 0,initialization;
else feval(varargin{:}); end

function initialization
OldFigure = findobj( 'type', 'figure', 'Tag', 'yanshi' ) ;
if ishandle( OldFigure ),close( OldFigure ) ; end
mainFigure=figure('Units','normalized', 'Tag','yanshi', 'MenuBar','none',...
    'NumberTitle','off', 'Visible','on', 'position',);
String = {'画线';'清除';} ; ButtonCallback={'yy(''show'',gcf)';'yy(''qingchu'',gcf)';};
for num = 1:2
    Position = ; Position(2) = Position(2) - num*0.1;
    uicontrol('Parent', mainFigure, 'Units','normalized', 'Style','pushbutton',...
      'String',String(num), 'FontSize',8, 'Position',Position, 'Callback',ButtonCallback{num});   
end
fig_axes=axes('units','normalized', 'Tag','axes1', 'Visible','off', 'position',[.1,.1,.5,.5]);

function show(hobj)
handles = guihandles(hobj);
axes(handles.axes1); plot(1:10);

function qingchu(hobj)
handles = guihandles(hobj);
try
    delete(allchild(handles.axes1)); set(handles.axes1,'visible','off');
end
画线后,点清除没有作用,调试一下发现到清除函数时handles结构体里没有axes1这一项,大侠帮帮忙看一下吧!

是不是初始化的时候有问题

[ 本帖最后由 ChaChing 于 2010-8-2 19:24 编辑 ]

ChaChing 发表于 2010-8-2 23:00

function show(hobj)
handles = guihandles(hobj);
axes(handles.axes1); plot(1:10); set(gca,'Tag','axes1')

zing 发表于 2010-8-2 23:36

回复 沙发 ChaChing 的帖子

谢谢了,能解释一下原因吗?学习一下

ChaChing 发表于 2010-8-3 00:01

回复 板凳 zing 的帖子

我是设断点发现gca的Tag在plot后从axes变为空
help guihandles发现其乃抓取Tag属性, 所以就如此处置
个人新版很少使用GUI了, 都是今天才边看边学的
猜测可能plot函数有set Tag的过程!? 但不确定:loveliness:

zing 发表于 2010-8-4 09:14

回复 地板 ChaChing 的帖子

想再问一个问题,
function show(hobj)
handles = guihandles(hobj);
axes(handles.axes1); plot(1:10);

function qingchu(hobj)
handles = guihandles(hobj);
try
    delete(allchild(handles.axes1)); set(handles.axes1,'visible','off');
end
如果我在第一个函数中加一个数据
handles.data=;
guidata(hobj,handles);为什么第二个函数里没有handles.data呢?还是数据传输的问题,用global可以,不过我想试试用句柄,呵呵,谢谢赐教!

ChaChing 发表于 2010-8-17 20:29

回复 5楼 zing 的帖子

最近公司很忙, 没能试!
LZ试出结果了吗?
页: [1]
查看完整版本: 如何清除坐标轴的信息