Selecting a point on a scatter plot, saving index of point
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
Walter Roberson
le 17 Août 2019
Sounds like you might want brushing https://www.mathworks.com/help/matlab/ref/brush.html
Réponse acceptée
darova
le 17 Août 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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Scatter Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!