How do I plot data labels alongside my data in a scatter plot?
Show older comments
I am trying to plot data labels alongside my data in a scatter plot. The goal is to plot several different relationships in the same figure and to include the labels for each of the points.
For example if I have data vectors: [X] and [Y]
and textdata {Xname} to indicate the id corresponding to each (x)
How do I run scatter(X,Y) so that it will also display the string ids [Xname] alongside each data point?
Answers (2)
Oleg Komarov
on 25 Jan 2011
5 votes
To make it clear with a full example:
% Example input
X = rand(10,1);
Y = rand(10,1);
% example labels
textCell = arrayfun(@(x,y) sprintf('(%3.2f, %3.2f)',x,y),X,Y,'un',0);
% Plot scatter
scatter(X,Y,'filled')
% Add textCell
for ii = 1:numel(X)
text(X(ii)+.02, Y(ii)+.02,textCell{ii},'FontSize',8)
end

Oleg
1 Comment
Atanu
on 15 Mar 2022
This is great!
the cyclist
on 25 Jan 2011
I don't know if you can do it within the plotting command, but one way to do this is, after creating the plot, run a loop like
for ii=1:N
text(x(ii),y(ii),textCell{ii})
end
(That code is not exactly right syntactically, but looping with the text command should get you what you want.)
Categories
Find more on Annotations in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!