2014-03-30 1 views
1

y 축에 두 개의 다른 벡터를 사용하고 하나의 축에 축이 x 인 동일한 벡터로 GUI에서 플롯했습니다.Matlab GUI 다중 플롯 체크 박스 컨트롤

다음 두 개의 확인란을 GUI에 넣습니다.

은 내가 먼저 체크 박스 내 축이 나에게 음모에 첫 번째 벡터를 표시하고있을 때 축 벡터의 'off'이 공개 설정이, 두 번째 체크 박스에만 두 번째 벡터 같은 off입니다 'on'때 exemple 있도록하고 싶습니다. 사실 내 체크 박스는 축의 개별 벡터 가시성을 on 또는 off으로 바꾸는 데 사용됩니다. 여기

내 코드입니다 : 내 확인란이 ' on'벡터는 플롯에서 볼 수 있지만 확인란이 ' off'때 나는 기능 cla()하지만 기능을 내가 할 수있는, 그것을 제거 할 수있다

function checkbox1_Callback(hObject, eventdata, handles)  
    if (get(hObject,'Value')) == 1 
     plot(vectorx,vectory); 
    else 
     ??? 
    end 

축에서 모두 제거하십시오.

답변

2

- 코드는 태그가 axes1이다 축이 가정 나중에 가시성을 켜거나 끌 수 있습니다. 코드에서 다른

곳 : 당신의 체크 박스의 콜백에서 다음

handles.handle_plot1 = plot(vectorx,vectory); 

:

function checkbox1_Callback(hObject, eventdata, handles) 
    handles.handle_plot1 = handles.handle_plot1 %// optional, you can use another way to retrieve your handle 
    if (get(hObject,'Value')) == 1 
     set(handle_plot1, 'visible' , 'on') 
    else 
     set(handle_plot1, 'visible' , 'off') 
    end 

은의 핸들을 저장하는 것을 잊지 마세요 플롯 (당신이 그것을 만든 직후) 콜백에서 그것을 검색 할 수있는 방법으로,하지만 난 당신이 알고 있다고 가정합니다. 원래 코드에서 콜백이 이미 변수 벡터 xvectory을 호출했기 때문에 그렇게해야합니다.

분명히 두 번째 플롯 및 확인란에 대해 동일한 작업을 수행하십시오.

+0

감사합니다. :) – m4rko

0

이것은 당신이하려는 것을 어떻게 달성 할 수 있는지에 대한 데모입니다. 이 코드에 사용 된 데이터를 귀하의 것으로 교체하십시오. 당신은 단지 당신이 재사용 할 수 있도록, 당신은 전에 플롯을 작성하고 플롯의 핸들을 저장해야 주어진 플롯의 가시성을 제어 할 수있는 체크 박스를 원하는 경우

%%// --- Executes on button press in checkbox1. 
function checkbox1_Callback(hObject, eventdata, handles) 

vectorx = 1:50; 
vectory1 = sin(vectorx); 
if get(hObject,'Value') 
    plot(vectorx,vectory1); 
else 
    cla(handles.axes1); 
end 

return; 


%%// --- Executes on button press in checkbox2. 
function checkbox2_Callback(hObject, eventdata, handles) 

vectorx = 1:50; 
vectory2 = cos(x2); 
if get(hObject,'Value') 
    plot(vectorx,vectory2); 
else 
    cla(handles.axes1); 
end 

return;