Cursor mode only for specified data

Hello everybody,
I have one figure with two plots. One of them is a scatter plot and I want activate the data cursor and only find points of this data.
I dont know how to really modify using myfunction
Maybe creating a specific handle?
Thanks
Code:
function scatterMod(varargin)
scatter(varargin{:}) %this is the data which I want to work using the data cursor
dcm = datacursormode(gcf);
set(dcm, 'updatefcn', @myfunction)
function output_txt = myfunction(obj,event_obj)
% Display the position of the data cursor
% obj Currently not used (empty)
% event_obj Handle to event object
% output_txt Data cursor text string (string or cell array of strings).
pos = get(event_obj,'Position');
output_txt = {['X: ',num2str(pos(1),4)],...
['Y: ',num2str(pos(2),4)]};
% If there is a Z-coordinate in the position, display it as well
if length(pos) > 2
output_txt{end+1} = ['Z: ',num2str(pos(3),4)];
end

 Risposta accettata

Walter Roberson
Walter Roberson il 15 Nov 2011

1 voto

Try setting HitTest off on the points you do not want data cursor to work for. (I don't promise it will work, but it is worth the experiment.)

1 Commento

fjnb86
fjnb86 il 25 Apr 2012
It was many time ago but you were right!
Until now I was doing other thinh but yours is more elegant and today (with more experience) I solved!
%code for other new users
[handlesfigure]=yourplot(x,y); %u dont want to interact with this
set(handlesfigure,'HitTest','off')

Accedi per commentare.

Più risposte (1)

fjnb86
fjnb86 il 15 Nov 2011

0 voti

Data cursor has an option called Selection->"Snap to nearest data vertex" and it works well but only when you have one data represented.
If I plot more in the same figure this function catches both of them and I only want this for the scatter plot.
thanks!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by