Why after plotting on axes the ButtonDownFcn doesn't work?
Mostra commenti meno recenti
Hi,
I have a GUI with 3 axes. Before plotting the data the three functions axesX_ButtonDownFcn(...) work, but when I plot the data they don't work anymore.
I have tried this but doesn't work:
axes(handles.plot1);
handles.cursorPlot1 = plot(handles.simulation_data_temp(8,:), 'Parent',...
handles.axes1, 'HitTest', 'off', 'ButtonDownFcn', '');
What I am doing wrong?
Thanks.
2 Commenti
Bing
il 16 Apr 2017
You should do this:
% code
set(handles.plot1,'NextPlot','new');
cla(handles.plot1);
axes(handles.plot1);
handles.cursorPlot1 = plot(handles.simulation_data_temp(8,:), 'Parent',...
handles.axes1, 'HitTest', 'off');
David Willis
il 4 Ago 2017
For simple folks like me, all you need is this. I created a button and an axes. When I press the button it plots a sinewave on the axes. When I click in the axes window, the coordinates are displayed.
function pushbutton1_Callback(hObject, eventdata, handles)
%pushbutton callback function
x = 0:100;
y = sin(2*pi*x/20);
set(handles.axes1, 'nextPlot','new'); %this is the key!
axes(handles.axes1);
plot(x,y);
% ButtonDown callback for axes1
function axes1_ButtonDownFcn(hObject, eventdata, handles)
coord = get(hObject, 'CurrentPoint') %No semicolon so it is displayed
pts = coord(1,1:2)
Risposta accettata
Più risposte (3)
Deep Desai
il 25 Giu 2014
Modificato: Deep Desai
il 25 Giu 2014
Jan, would I be expected to do the same incase I was using a function and not displaying a text.
My code;
set(handles.threat,'HitTest','off');
set(handles.threat, 'ButtonDownFcn', {@threat_ButtonDownFcn,handles});
hold all
scatter(handles.threat,green_distance, gGreenTime,'g*');
function threat_ButtonDownFcn(hObject, eventdata, handles)
P = get(handles.threat,'CurrentPoint');
Thanks again mate.
You set the ButtonDownFcn explicitly to the empty string. What kind of processing do you expect afterwards?
[EDITED]
AxesH = axes('ButtonDownFcn', 'disp(''Axes click!'')');
Plot1 = plot(1:10, 'Parent', AxesH, 'HitTest', 'off', 'ButtonDownFcn', '');
Now clicking on the axes still works. Please test this. And now find out, where in your code the ButtonDownFcn is overwritten. And/or set a breakpoint in the ButtonDownFcn to find out, if it is still called, but any other error occurres.
4 Commenti
Dani Tormo
il 29 Nov 2012
Modificato: Dani Tormo
il 29 Nov 2012
Sean de Wolski
il 29 Nov 2012
Turn it's 'Hittest' on and it's 'ButtonDownFcn' to something
Dani Tormo
il 29 Nov 2012
Dani Tormo
il 29 Nov 2012
Image Analyst
il 29 Nov 2012
0 voti
For the Mathworks view on this: http://www.mathworks.com/support/solutions/en/data/1-1B03X/?solution=1-1B03X
1 Commento
Dani Tormo
il 29 Nov 2012
Categorie
Scopri di più su Interactive Control and Callbacks in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!