MATLAB Answers

Changing length of bar in legend

30 views (last 30 days)
Steven
Steven on 24 Oct 2014
Commented: Steven on 28 Oct 2014
Here is discussed how to change the length of the bar in Legend axes, when a bar graph is plotted.
But how do you apply the code discussed there to a bar graphs with multiple bars per x tick?
For example on,
bar([1,2;3,4])
legend('one','two')
Thanks!

Accepted Answer

Kelly Kearney
Kelly Kearney on 27 Oct 2014
It can be done pretty easily with my legend-reformatting function, legendflex:
bar([1,2;3,4]);
legendflex(gca, {'one','two'}, 'xscale', 0.5)
  3 Comments
Steven
Steven on 28 Oct 2014
It works! Thanks a lot!

Sign in to comment.

More Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 24 Oct 2014
You can change the position
bar([1,2;3,4])
h=legend('one','two')
pos=get(h,'position')
new_pos=pos
new_pos(3)=pos(3)+0.4 % This is the x length
new_pos(1)=pos(1)-0.4 % The x position
set(h,'position',new_pos)
  1 Comment
Steven
Steven on 27 Oct 2014
Thanks for reply!
But why do you want to change the position? Is it possible to change the size of the boxes in the legends, making the overall size of the legend smaller, but keeping all else equal?

Sign in to comment.


Robert Cumming
Robert Cumming on 27 Oct 2014
You can change the fontSize property which makes it smaller.
Otherwise if your using pre 2014b you can get to all the properties through the legend handle. Since the legend is built on a axes you can alter the axes children

Community Treasure Hunt

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

Start Hunting!

Translated by