Cursor mode only for specified data

4 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2011-11-15
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 个评论
fjnb86
fjnb86 2012-4-25
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')

请先登录,再进行评论。

更多回答(1 个)

fjnb86
fjnb86 2011-11-15
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!

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by