Legend position according to axes

조회 수: 196 (최근 30일)
Timon Rayis
Timon Rayis 2020년 3월 10일
댓글: Timon Rayis 2020년 3월 10일
Hello I want to reposition the legend from the start of axes (not in the middle) like this
Can we do this? Here is my code
x = 1:10; y1 = 4*x; y2 = 3*x + 5; figure(1), plot(x,y1,'b',x,y2,'r')
legend('Line 1','Line 2','Location','NorthOutside','Orientation','horizontal','Box','off')

답변 (1개)

Jakob B. Nielsen
Jakob B. Nielsen 2020년 3월 10일
You can specify the position of your legend yourself with coordinates, rather than using a predetermined location. First two coordinates are the x and y start, second coordinates are the x-wise length and y-wise height of the legend. For example:
x = 1:10; y1 = 4*x; y2 = 3*x + 5; figure(1), plot(x,y1,'b',x,y2,'r')
legend('Line 1','Line 2','Position',[0.2 0.92 0.15 0.0869]);
legend('Orientation','horizontal')
legend('boxoff')
  댓글 수: 4
Jakob B. Nielsen
Jakob B. Nielsen 2020년 3월 10일
편집: Jakob B. Nielsen 2020년 3월 10일
Weird! It seems the properties changes simply from the maximising of the window. I dont know why that is the case...
if you put in
x = 1:10; y1 = 4*x; y2 = 3*x + 5;
ax=axes;
plot(ax,x,y1,'b',x,y2,'r')
lg=legend('Line 1','Line 2','Position',[0.2 0.92 0.15 0.0869],'Orientation','horizontal','Box','off');
and then inspect lg, it has Position: [0.1250 0.9396 0.3000 0.0476] (which is not even the position we specify)... But then when maximising the window and doing nothing else, lg now has Position: [0.2313 0.9542 0.0875 0.0185].
I dont know... If you need the plot maximised, then plot it maximised to begin with and set the legend position accordingly, I guess?
Timon Rayis
Timon Rayis 2020년 3월 10일
This was exactly my doubt too. but the quick fix you suggested at the end surely helps. Thanks for that.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Legend에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by