How can I give a different legend for each element of a vector in a scatter plot?
55 views (last 30 days)
Show older comments
Hi! I'm a beginner at Matlab and I'm having trouble to assign legend to my data in plots. Let's say I have three samples named 'a', 'b', 'c' which have X values of A e y values of B.
A=[1:3]; B=[9:11];
(example: sample 'a' has a value of 1 in the X axis and 9 in the y axis)
I created a string C=['a,b,c'] for the legend, but when I plot them and insert legend I don't get what I mean. This is what I did:
scatter(A,B); legend(C); And this is what Matlab returned:
What I wanted was that each marker could be assigned a different legend, since they refer to different samples. When I created separated variables for each sample, I could do what I wanted, but I'm sure there might have a simpler way of doing it.
p.s.: This is just an example, my real data might have up to 130 samples!
0 Comments
Answers (3)
Walter Roberson
on 27 Jul 2015
You cannot do that with scatter() and legend() in a single scatter call. scatter() only creates a single graphics object per call.
If you want to label the object "near" the dot, then consider
scatter(A,B); text(A,B,{' a',' b',' c'})
Notice the two extra spaces I put before each letter: that is to move the letter away from the dot.
If you want to use legend then:
for K = 1 : length(A);scatter(A(K),B(K)); hold on; end; legend({'a','b','c'})
0 Comments
Star Strider
on 27 Jul 2015
You have to plot the individual data (or groups of data) separately, and you need to use a cell array for the legend, since the square brackets [] concatenate string arrays:
A=[1:3]; B=[9:11];
C={'a', 'b', 'c'};
figure(1)
hold on
for k1 = 1:length(A)
scatter(A(k1),B(k1))
end
hold off
legend(C)
2 Comments
Azzi Abdelmalek
on 27 Jul 2015
A=[1:3];
B=[9:11];
figure;
hold on
for k=1:numel(A)
scatter(A,B,'facecolor','b')
end
hold off
legend({'a','b','c'})
0 Comments
See Also
Categories
Find more on Legend 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!