그래프에 범례 추가하기
범례는 그래프에 플로팅된 데이터 계열에 대해 레이블을 지정할 수 있는 유용한 방법입니다. 이 예제에서는 범례를 만드는 방법과 위치 변경, 글꼴 크기 설정, 제목 추가 등 일반적인 수정 방법을 보여줍니다. 또한 여러 개의 열을 갖는 범례를 만들거나 플로팅된 데이터의 일부에 대한 범례를 만들 수도 있습니다.
간단한 범례 만들기
선 차트와 산점도 차트를 포함한 Figure를 생성합니다. 그런 다음 각 차트에 대한 설명이 포함된 범례를 추가합니다. 범례 레이블을 legend
함수에 대한 입력값으로 지정합니다.
figure x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend('sin(x/2)','2016')
DisplayName을 사용하여 레이블 지정하기
다른 방법으로, DisplayName
속성을 사용하여 범례 레이블을 지정할 수도 있습니다. 플로팅 함수를 호출할 때 DisplayName
속성을 이름-값 쌍으로 설정합니다. 그런 다음 legend
명령을 호출하여 범례를 생성합니다.
x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1,'DisplayName','sin(x/2)') hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled','DisplayName','2016') legend
데이터 계열을 추가하거나 삭제할 때 범례는 자동으로 업데이트됩니다. 좌표축에 데이터를 추가할 경우에는 DisplayName
속성을 사용하여 레이블을 지정하십시오. DisplayName
속성을 설정하지 않으면 범례에는 'dataN'
형식의 레이블이 사용됩니다.
2017년 데이터에 대한 산점도 차트를 추가합니다.
x3 = [0 1 2 3 4 5]; y3 = [0.1 0.4 0.6 0.9 0.8 0.7]; scatter(x3,y3,'filled','DisplayName','2017') drawnow hold off
범례 모양 사용자 지정하기
legend
함수는 Legend
객체를 생성합니다. Legend
객체는 범례의 모양을 사용자 지정하는 데 사용할 수 있는 속성(예: Location
, Orientation
, FontSize
및 Title
속성)을 갖습니다. 전체 목록을 보려면 Legend 속성 항목을 참조하십시오.
다음 두 가지 방법으로 속성을 설정할 수 있습니다.
legend
명령에 이름-값 쌍을 사용합니다. 대부분의 경우, 이름-값 쌍을 사용할 때는 레이블을 셀형 배열로 지정해야 합니다(예:legend({'label1','label2'},'FontSize',14)
).Legend
객체를 사용합니다.Legend
객체를legend
함수의 출력 인수로 반환할 수 있습니다(예:lgd = legend
). 그런 다음lgd
에 점 표기법을 사용하여 속성을 설정합니다(예:lgd.FontSize = 14
).
범례 위치와 방향
Location
속성과 Orientation
속성을 이름-값 쌍으로 설정하여 범례 위치와 방향을 지정합니다. 위치는 기본 방위(동, 서, 남, 북) 또는 기본 방위 사이의 방위(북동, 북서, 남동, 남서), 이 8가지 중 하나로 설정합니다(여기에서는 'northwest'
). 방향은 'vertical'
(디폴트 값)로 설정하거나 여기에서처럼 'horizontal'
로 설정합니다. 레이블은 셀형 배열로 지정합니다.
x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')
범례의 글꼴 크기와 제목
FontSize
속성과 Title
속성을 설정하여 범례의 글꼴 크기와 제목을 지정합니다. 변수 lgd
에 Legend
객체를 할당합니다. 그런 다음 lgd
에 점 표기법을 사용하여 속성을 변경합니다.
x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1,'DisplayName','sin(x/2)') hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled','DisplayName','2016') hold off lgd = legend; lgd.FontSize = 14; lgd.Title.String = '2016 Data';
여러 열을 갖는 범례
6개의 선 플롯이 있는 차트를 생성합니다. NumColumns
속성을 2로 설정하여 두 개의 열을 갖는 범례를 추가합니다.
x = linspace(0,10); y1 = sin(x); y2 = sin(0.9*x); y3 = sin(0.8*x); y4 = sin(0.7*x); y5 = sin(0.6*x); y6 = sin(0.5*x); plot(x,y1,'DisplayName','sin(x)') hold on plot(x,y2,'DisplayName','sin(0.9x)') plot(x,y3,'DisplayName','sin(0.8x)') plot(x,y4,'DisplayName','sin(0.7x)') plot(x,y5,'DisplayName','sin(0.6x)') plot(x,y6,'DisplayName','sin(0.5x)') hold off lgd = legend; lgd.NumColumns = 2;
범례에 차트의 일부 포함시키기
2개의 막대 차트와 하나의 산점도 차트를 결합합니다. Bar
객체 b1
과 b2
를 legend
함수에 대한 첫 번째 입력 인수로 지정하여 막대 차트만 포함하는 범례를 생성합니다. 이 객체는 벡터로 지정합니다.
x = [1 2 3 4 5]; y1 = [.2 .4 .6 .4 .2]; b1 = bar(x,y1); hold on y2 = [.1 .3 .5 .3 .1]; b2 = bar(x,y2,'BarWidth',0.5); y3 = [.2 .4 .6 .4 .2]; s = scatter(x,y3,'filled'); hold off legend([b1 b2],'Bar Chart 1','Bar Chart 2')