In [7]:
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings(action='ignore')
Legend(범례)¶
: 여러 plot이 한 축에 표현되어 있을 때, 해당 plot을 표시하는 것
In [38]:
x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x), '-g', label='sin(x)')
plt.plot(x, np.cos(x), ':b', label='cos(x)')
plt.axis('equal')
plt.legend()
Out[38]:
<matplotlib.legend.Legend at 0x177e832f0>
In [ ]:
Legend(범례) 생성관련¶
- label이 지정되어 있지 않으면 범례가 생성되지 않는다.
- label 없이, legend메소드에 list 매개변수를 넣어서 이름을 지정할 수 있다.
In [43]:
x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x), '-g')
plt.plot(x, np.cos(x), ':b', label='cos(x)')
plt.axis('equal')
plt.legend()
Out[43]:
<matplotlib.legend.Legend at 0x177ef2e10>
In [45]:
x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x), '-g')
plt.plot(x, np.cos(x), ':b')
plt.axis('equal')
plt.legend(['sin(x)', 'cos(x)'])
Out[45]:
<matplotlib.legend.Legend at 0x177debef0>
In [ ]:
범례 세부 옵션 지정¶
- Loc: legend의 위치 지정 (예를 들면, upper left, lower right, center left 등등)
- Frameon: legend의 테두리 설정
- ncols: 데이터 표시 열 수. 즉, 데이터를 행으로만 추가하는게 아니라 열로 추가하는 방법
- shadow: 그림자 효과
- fancybox: 모서리가 둥근 테두리
In [52]:
x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x), '-g')
plt.plot(x, np.cos(x), ':b')
plt.axis('equal')
plt.legend(['sin(x)', 'cos(x)'], loc='lower right', ncols = 2, shadow=True)
Out[52]:
<matplotlib.legend.Legend at 0x177fa9850>
In [ ]:
In [60]:
x = np.linspace(0, 10, 1000)
plots = []
plots += plt.plot(x, np.sin(x), '-g')
plots += plt.plot(x, np.cos(x), ':b')
plt.legend(plots[:1], ['sin(x)']) # 첫 번째 plot의 범례 명을 sin(x)로 지정
Out[60]:
<matplotlib.legend.Legend at 0x1780be5a0>
In [ ]:
범례 분할¶
: matplotlib.legend 패키지로 legend 객체를 생성하고, 'add_artist' 메소드 호출을 통해 범례를 자유롭게 지정하고 분리할 수 있다.
In [77]:
# Flot 출력
fig, ax = plt.subplots()
lines = []
styles = ['-', '--', '-.', ':'] # style → styles로 수정
x = np.linspace(0, 10, 1000)
for i in range(4):
lines += ax.plot(x, np.sin(x - i * np.pi / 2),
styles[i], color='black') # style → styles
ax.axis('equal')
# 일부 범례 적용
ax.legend(lines[:2], ['line A', 'line B'],
loc='upper right', frameon=False)
# legend 패키지로 일부 범례 생성후 add_artist로 적용
from matplotlib.legend import Legend
leg = Legend(ax, lines[2:], ['line C', 'line D'],
loc='lower right', frameon=False)
ax.add_artist(leg) # 캔버스에 legend객체 추가
Out[77]:
<matplotlib.legend.Legend at 0x177ef1940>
In [ ]:
'2학년 2학기 > 데이터 사이언스 입문' 카테고리의 다른 글
[Visualization] Matplotlib의 고급 기능(Subplots, annotate, Fommator, Locator) (0) | 2024.12.02 |
---|---|
[Visualization] Colormap (0) | 2024.12.02 |
[Visualization] Contour Plot(등고선) (0) | 2024.11.26 |
[Visualization] Error Bar (0) | 2024.11.26 |
[Visualization] Scatter Plot(산점도) (0) | 2024.11.26 |