Contents
- Matplotlib Tutorial - 파이썬으로 데이터 시각화하기
- Matplotlib 설치하기
- Matplotlib 기본 사용
- Matplotlib 숫자 입력하기
- Matplotlib 축 레이블 설정하기
- Matplotlib 범례 표시하기
- Matplotlib 축 범위 지정하기
- Matplotlib 선 종류 지정하기
- Matplotlib 마커 지정하기
- Matplotlib 색상 지정하기
- Matplotlib 그래프 영역 채우기
- Matplotlib 축 스케일 지정하기
- Matplotlib 여러 곡선 그리기
- Matplotlib 그리드 설정하기
- Matplotlib 눈금 표시하기
- Matplotlib 타이틀 설정하기
- Matplotlib 수평선/수직선 표시하기
- Matplotlib 막대 그래프 그리기
- Matplotlib 수평 막대 그래프 그리기
- Matplotlib 산점도 그리기
- Matplotlib 3차원 산점도 그리기
- Matplotlib 히스토그램 그리기
- Matplotlib 에러바 표시하기
- Matplotlib 파이 차트 그리기
- Matplotlib 히트맵 그리기
- Matplotlib 여러 개의 그래프 그리기
- Matplotlib 컬러맵 설정하기
- Matplotlib 텍스트 삽입하기
- Matplotlib 수학적 표현 사용하기
- Matplotlib 그래프 스타일 설정하기
- Matplotlib 이미지 저장하기
- Matplotlib 객체 지향 인터페이스 1
- Matplotlib 객체 지향 인터페이스 2
- Matplotlib 축 위치 조절하기
- Matplotlib 이중 Y축 표시하기
- Matplotlib 두 종류의 그래프 그리기
- Matplotlib 박스 플롯 그리기
- Matplotlib 바이올린 플롯 그리기
- Matplotlib 다양한 도형 삽입하기
- Matplotlib 다양한 패턴 채우기
- Matplotlib 애니메이션 사용하기 1
- Matplotlib 애니메이션 사용하기 2
- Matplotlib 3차원 Surface 표현하기
- Matplotlib 트리맵 그리기 (Squarify)
- Matplotlib Inset 그래프 삽입하기
Tutorials
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
Matplotlib 범례 표시하기¶
범례 (Legend)는 그래프에 데이터의 종류를 표시하기 위한 텍스트입니다.
matplotlib.pyplot 모듈의 legend() 함수를 사용해서 그래프에 범례를 표시할 수 있습니다.
이 페이지에서는 그래프에 다양한 방식으로 범례를 표시하는 방법에 대해 소개합니다.
Keyworkd: plt.legend(), label, loc, ncol, fontsize, frameon, shadow, 범례
■ Table of Contents
1) 기본 사용¶
예제¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
plt.legend()
plt.show()
그래프 영역에 범례를 나타내기 위해서는 우선 plot() 함수에 label 문자열을 지정하고,
matplotlib.pyplot 모듈의 legend() 함수를 호출합니다.
아래와 같이 그래프의 적절한 위치에 데이터를 설명하는 범례가 나타납니다.

Matplotlib 범례 표시하기 - 기본 사용¶
2) 위치 지정하기¶
예제1¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# plt.legend(loc=(0.0, 0.0))
# plt.legend(loc=(0.5, 0.5))
plt.legend(loc=(1.0, 1.0))
plt.show()
legend() 함수의 loc 파라미터를 이용해서 범례가 표시될 위치를 설정할 수 있습니다.
loc 파라미터를 숫자 쌍 튜플로 지정하면, 해당하는 위치에 범례가 표시됩니다.
loc=(0.0, 0.0)은 데이터 영역의 왼쪽 아래, loc=(1.0, 1.0)은 데이터 영역의 오른쪽 위 위치입니다.
loc 파라미터에 여러 숫자 쌍을 입력하면서 범례의 위치를 확인해보세요.

Matplotlib 범례 표시하기 - 위치 지정하기1¶
예제2¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
plt.legend(loc='lower right')
plt.show()
loc 파라미터는 예제에서와 같이 문자열로 지정할 수도 있고, 숫자 코드를 사용할 수도 있습니다.
loc=’lower right’와 같이 지정하면 아래와 같이 오른쪽 아래에 범례가 표시됩니다.

Matplotlib 범례 표시하기 - 위치 지정하기2¶
위치 지정 문자열과 코드는 아래의 표를 참고하세요.
Location String |
Location Code |
설명 |
---|---|---|
‘best’ |
0 |
그래프의 최적의 위치에 표시합니다. (디폴트) |
‘upper right’ |
1 |
그래프의 오른쪽 위에 표시합니다. |
‘upper left’ |
2 |
그래프의 왼쪽 위에 표시합니다. |
‘lower left’ |
3 |
그래프의 왼쪽 아래에 표시합니다. |
‘lower right’ |
4 |
그래프의 오른쪽 아래에 표시합니다. |
‘right’ |
5 |
그래프의 오른쪽에 표시합니다. |
‘center left’ |
6 |
그래프의 왼쪽 가운데에 표시합니다. |
‘center right’ |
7 |
그래프의 오른쪽 가운데에 표시합니다. |
‘lower center’ |
8 |
그래프의 가운데 아래에 표시합니다. |
‘upper center’ |
9 |
그래프의 가운데 위에 표시합니다. |
‘center’ |
10 |
그래프의 가운데에 표시합니다. |
3) 열 개수 지정하기¶
예제¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.plot([1, 2, 3, 4], [3, 5, 9, 7], label='Demand (#)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# plt.legend(loc='best') # ncol = 1
plt.legend(loc='best', ncol=2) # ncol = 2
plt.show()
legend() 함수의 ncol 파라미터는 범례에 표시될 텍스트의 열의 개수를 지정합니다.
기본적으로 아래 첫번째 그림과 같이 범례 텍스트는 1개의 열로 표시되며,
ncol=2로 지정하면 아래 두번째 그림과 같이 표시됩니다.

Matplotlib 범례 표시하기 - 열 개수 지정하기 (ncol=1)¶

Matplotlib 범례 표시하기 - 열 개수 지정하기 (ncol=2)¶
4) 폰트 크기 지정하기¶
예제¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.plot([1, 2, 3, 4], [3, 5, 9, 7], label='Demand (#)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# plt.legend(loc='best')
plt.legend(loc='best', ncol=2, fontsize=14)
plt.show()
legend() 함수의 fontsize 파라미터는 범례에 표시될 폰트의 크기를 지정합니다.
폰트 크기를 14로 지정했습니다.
결과는 아래와 같습니다.

Matplotlib 범례 표시하기 - 폰트 크기 지정하기¶
5) 범례 테두리 꾸미기¶
예제¶
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 5, 10], label='Price ($)')
plt.plot([1, 2, 3, 4], [3, 5, 9, 7], label='Demand (#)')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# plt.legend(loc='best')
plt.legend(loc='best', ncol=2, fontsize=14, frameon=True, shadow=True)
plt.show()
frameon 파라미터는 범례 텍스트 상자의 테두리를 표시할지 여부를 지정합니다.
frameon=False로 지정하면 테두리가 표시되지 않습니다.
shadow 파라미터를 사용해서 텍스트 상자에 그림자를 표시할 수 있습니다.
결과는 아래와 같습니다.

Matplotlib 범례 표시하기 - 범례 테두리 꾸미기¶
이 외에도 legend() 함수에는 facecolor, edgecolor, borderpad, labelspacing과 같은 다양한 파라미터가 있습니다.
더 자세한 내용은 공식 홈페이지의 설명 (링크)을 참고하세요.