Selecting a point on a scatter plot, saving index of point

22 visualizaciones (últimos 30 días)
James Morris
James Morris el 17 de Ag. de 2019
Comentada: darova el 18 de Ag. de 2019
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.

Respuesta aceptada

darova
darova el 17 de Ag. de 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

Más respuestas (0)

Categorías

Más información sobre Scatter Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by