legend ignores leading whitespace, thus ignoring field width and messing up alignment

6 views (last 30 days)
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!

Accepted Answer

the cyclist
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')

More Answers (0)

Community Treasure Hunt

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

Start Hunting!