legend ignores leading whitespace, thus ignoring field width and messing up alignment
6 views (last 30 days)
Show older comments
Hi!
I am creating a legend where each entry has the same number of characters, padded if necessary by leading whitespace. When I pass this to "legend", this whitespace gets ignored and the "significant characters" centered. Does anyone know how I can force the legend to take the white space into account? Or simply right-align the text?
Mini-example showing the problem:
x = 0:0.1:5;
y = sin(x);
a = logspace(-3,0,10);
% create string array, fixing the field width
tmp = arrayfun(@(x)sprintf('%8.3g %s',x,'Shift'),a,'UniformOutput',0)
figure
for i = 1:length(a)
plot(x,y+exp(a(i))); hold on;
end
legend(tmp) % create legend
Thanks!
0 Comments
Accepted Answer
the cyclist
on 27 Nov 2015
Edited: the cyclist
on 27 Nov 2015
You need to choose a fixed-width font. For example
h = legend(tmp) % create legend
set(h,'FontName','monospaced')
0 Comments
More Answers (0)
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!