Selecting a point on a scatter plot, saving index of point
25 views (last 30 days)
Show older comments
What is the best way to allow a user to select 5 data points on a scatter plot and then save the index of these plots?
Code I am currently using:
disp('Following the trajectory from <start> to <end>, please click 5 points on the plot where you think the keypress moments are, press Enter to confirm');
% Save points selected on plot by user
[user_selected_keypressframes] = ginput;
% Extract coordinates for each user selected point and save
[uskf1] = user_selected_keypressframes(1,:);
[uskf2] = user_selected_keypressframes(2,:);
[uskf3] = user_selected_keypressframes(3,:);
[uskf4] = user_selected_keypressframes(4,:);
[uskf5] = user_selected_keypressframes(5,:);
Issue:
This code allows the user to click/select any area within the plot, I want them to only be able to click/select data points so I can save the index of these points.
1 Comment
Walter Roberson
on 17 Aug 2019
Sounds like you might want brushing https://www.mathworks.com/help/matlab/ref/brush.html
Accepted Answer
darova
on 17 Aug 2019
You can use pdist2() and min() functions to select closest to your data points
clc,clear
x = linspace(0,10,20)';
y = sin(x);
plot(x,y,'.-b')
g = ginput(3); % pick 3 points
D = pdist2([x y],g);
[~,ix] = min(D); % indices
hold on
plot(x(ix),y(ix),'or')
hold off
More Answers (0)
See Also
Categories
Find more on Scatter Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!