# Find the coordinates of a point chosen on a plot

174 views (last 30 days)

Show older comments

Hello,

So I've been using ginput to select points on a plot

My plot consists of time(x) and velocity(y).

Below is my user-selected points.

[Userx,Usery] = ginput(1);

However, I noticed it doesn't actually select points from the voltage vs. time graph and instead just a point in the figure screen.

How can I get the nearest data point of the actual plot?

I've found one solution is to use this user created script file:

https://www.mathworks.com/matlabcentral/fileexchange/3265-magnetginput

##### 1 Comment

Dinuka Madhumal
on 9 May 2023

### Accepted Answer

darova
on 14 Nov 2019

Short example

x = linspace(0,2,20)'; % generate some data

y = sin(x);

plot(x,y,'.-b')

xy = ginput(1); % get point

[~,ix] = min(pdist2([x y],xy)); % find closest point

hold on

plot(x(ix),y(ix),'or') % display closest point

hold off

##### 3 Comments

Dinuka Madhumal
on 9 May 2023

### More Answers (1)

Fangjun Jiang
on 12 Nov 2019

Use data cursor, set "SnapToDataVertex" to be "on" and then get the position. See example in

doc datacursormode

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!