How can I modify the lengh of the lines in a LEGEND?
조회 수: 318 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2010년 9월 1일
답변: Brandon Ballard
2021년 7월 17일
I would like to reduce the length of the lines shown in the legend of a plot in MATLAB.
채택된 답변
MathWorks Support Team
2018년 5월 17일
편집: MathWorks Support Team
2018년 5월 17일
The following example code illustrates how you can reduce the length of the lines shown in the legend of a plot:
In MATLAB R2014b and later
h1 = plot(1:10);
[hh,icons,plots,txt] = legend({'Line 1'});
p1 = icons(1).Position;
icons(1).Position = [0.3 p1(2) 0];
icons(2).XData = [0.05 0.2];
In MATLAB R2014a and before
plot(rand(2))
lh = legend('Line 1','Line 2');
ch = get(lh,'children');
xd = get(ch(2),'XData');
set(ch(2),'XData',[xd(1)+0.2 xd(2)])
댓글 수: 3
Cris LaPierre
2021년 1월 28일
Thank you Quan. Your code worked for me to change the legend length.
Rik
2021년 2월 4일
@Gergely Szabó did you use the code for R2014a and before? As you can see below, the example runs as expected on R2020b.
h1 = plot(1:10);
[hh,icons,plots,txt] = legend({'Line 1'});
h2 = plot(1:10);
[hh,icons,plots,txt] = legend({'Line 1'});
p2 = icons(1).Position;
icons(1).Position = [0.3 p2(2) 0];
icons(2).XData = [0.05 0.2];
추가 답변 (1개)
Brandon Ballard
2021년 7월 17일
Just to make it easier for people to find I have copied the approach listed in the comments which works for versions of Matlab R2018b onwards (I am currently using Matlab 2021a):
The simplest way to do it is to use: -
leg = legend('Plot1','Plot2',...);
leg.ItemTokenSize = [x1,x2];
By default x1=30 and x2=18 so put larger or smaller numbers as x1,x2 to increase or decrease the legend line size.
I can only modulate the length, not the width by using" leg = legend('Plot1','Plot2',...);
leg.ItemTokenSize = [x1,x2];"
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!