MATLAB Answers

2

How do I make one legend on a figure with multiple subplots?

Ian 님이 질문을 제출함. 20 Jan 2011
I would like to make one legend on a figure with multiple subplots, and place it either at the top-middle, or align the legend just above one of my subplots.
Right now I have given up using the 'legend' command from matlab and have implemented using the 'axes' command. I then take away the Xticks and Yticks, and then just manually make my legend using the 'rectangle' and 'text' commands. The only issue with this is that because 'axes' uses [left bottom width height], and 'width' and 'height' are 'percentages' of the figure, I find that when I 'print' or 'save', that my self-made legend does not appear where it should...
One idea I had:
Is it possible to set 'position' in pixels by getting handle to the 'subplots' with respect to my 'figure'? In which case I could set the 'axes' on the figure with respect to the X position of the subplot, and then move it up above the top of the subplot so that my legend is not inside the subplot.

  댓글 수: 1

Hi Ian, I moved your answer into a comment on my answer. That's a good place for that sort of back and forth.

로그인 to comment.

답변 수: 1

Todd Flanagan 님의 답변 20 Jan 2011

Something like this?

subplot(4,3,kdx);
plotmystuff(); % uses subplots 4-12 and leaves 1-3 empty
legend1 = legend(gca,'show');
% set the legend where I really want it.
set(legend1,...
          'Position',[a b c d]);

I typically run it one time and then use "File->Generate Code" to give me the actual coordinates I was satisfied with.

  댓글 수: 1

Ian says, "Yes, That is a good way of overcoming this challenge."

로그인 to comment.



Translated by