add xy coordinates to a graph

hi, i have a graph like this picture, local maxmimus are shown with red points, but i also would like to show the related xy coordinates on graph by adding commands to existing code,not with data curser. please help me if you can

 Accepted Answer

Do you mean you just want to put a text label near it?
indexToLabel = 42; % or whatever.
textString = sprintf('x = %.2f, y = %.2f', x(indexToLabel), y(indexToLabel));
text(x(indexToLabel), y(indexToLabel), textString);
Adjust the x, and y as necessary in text() to move the location of the label.

4 Comments

maryam
maryam on 1 Oct 2013
Edited: maryam on 1 Oct 2013
tnx for ur answer, please help me more! i used ur code as below:
[pks,locs]=findpeaks(r,'minpeakdistance',5,'THRESHOLD',100);% finding max
indexToLabel=[pks,locs];
textString = sprintf('x = %.2f, y = %.2f', x(indexToLabel), y(indexToLabel));
text(x(indexToLabel), y(indexToLabel), textString);
this error appeared on screen: Subscript indices must either be real positive integers or logicals.
i couldn't understand the meaning of that :-(
could u plz explain what should i do?
You need to get the x,y coordinates. Plus you have an array whereas I had just a single index (42). You can put it in a loop over indexToLabel where you call text once for each peak location.
how would you add a \r to this label?
Put \n into the string:
numPoints = 20;
x = sort(rand(1, numPoints));
y = rand(1, numPoints);
plot(x, y, 'b.-', 'MarkerSize', 25);
grid on;
[~, indexToLabel] = max(y); % label the highest point, or whatever you want.
textString = sprintf('x = %.2f\ny = %.2f', x(indexToLabel), y(indexToLabel));
text(x(indexToLabel), y(indexToLabel), textString, 'FontSize', 20, 'Color', 'r');
0001 Screenshot.png

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects 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!