how to name points in a plot?

Hello,
i am interested in naming points of my plot wiht numbers. So i tried it the following way where i is the number that should describe my node.
for i=1:length(xk)
plot(xk(i),yk(i),sprintf( '#%i'))
i=i+1;
hold on
end
but it didnt work and this error occured:
--->??? Error using ==> plot
--->Error in color/linetype argument
--->Error in ==> Plotten at 51
---> plot(xk(i),yk(i),sprintf( '#%i'))
can anyone help me with that please?
with best regards, John

 Accepted Answer

Hi John,
where you used sprint, the plot function expects as input LineSpec or 'PropertyName' followed by Propertyvalue.
I guess a direct way would be using the text function
...
plot(xk(i),yk(i))
text(xk(i),yk(i),num2str(i))
best,
Stephan

3 Comments

Thx for your answers!.... trying so, i have the following code:
for i=1:2:length(xk)
plot(xk(i:(i+1)),yk(i:(i+1)),'r-','LineWidth' ,1)
xk(i:(i+1));
yk(i:(i+1));
i=i+2;
hold on
end
for i=1:length(xk)
plot(xk(i),yk(i))
text(xk(i),yk(i),num2str(i))
i=i+1;
hold on;
end
There remains the problem that the node´s numbers are somehow overwritten various times, i cannot explain that because i placed the text command after the line plots as you can see.
best greetz, John
What i=i+1 is doing in your code?
thx i found the mistake...the irritation was due to strange loops^^
it works well now and the numbers arent overwritten anymore.

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 10 May 2013
Edited: Azzi Abdelmalek on 10 May 2013
for i=1:length(xk)
text(xk(i),yk(i),num2str(i))
hold on
end

1 Comment

Without for loop how to provide the numbering to each point.
Means if
x1= 167*rand (50,1);
y1=302* rand (50,1);
plot(x1,y1,'b*');

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!