- 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 그래프 삽입하기
- 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() 함수를 호출합니다.
아래와 같이 그래프의 적절한 위치에 데이터를 설명하는 범례가 나타납니다.
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 파라미터에 여러 숫자 쌍을 입력하면서 범례의 위치를 확인해보세요.
예제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’와 같이 지정하면 아래와 같이 오른쪽 아래에 범례가 표시됩니다.
위치 지정 문자열과 코드는 아래의 표를 참고하세요.
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로 지정하면 아래 두번째 그림과 같이 표시됩니다.
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로 지정했습니다.
결과는 아래와 같습니다.
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 파라미터를 사용해서 텍스트 상자에 그림자를 표시할 수 있습니다.
결과는 아래와 같습니다.
이 외에도 legend() 함수에는 facecolor, edgecolor, borderpad, labelspacing과 같은 다양한 파라미터가 있습니다.
더 자세한 내용은 공식 홈페이지의 설명 (링크)을 참고하세요.