Cursor mode only for specified data

2 visualizzazioni (ultimi 30 giorni)
fjnb86
fjnb86 il 21 Ott 2011
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
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
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