티스토리 뷰
네이버 부스트캠프 AI Tech 3기 강의를 듣는 과정에서 작성된 포스트입니다.
강의 내용을 저만의 언어로 재해석 했습니다.
Matplotlib말고도 Seaborn, Plotly, Bokeh, Altair 등의 다양하고 친절한 시각화 라이브러리가 존재한다. 그럼에도 불구하 Matplotlib가 범용성이 제일 넓고, base가 되는 라이브러리라서 정리해보고자 한다.
Import 하기
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
print(f'numpy version : {np.__version__}') # version check
print(f'matplotlib version : {mpl.__version__}') # version check
기본 Plot - Figure, Axes
기본적으로, Figure라는 큰 틀에 Ax라는 서브플롯을 추가해서 만든다.
다만 Figure는 큰 틀이라 서브플롯을 최소 1개 이상 추가해야 하고, 추가하는 다양한 방법이 있다.
fig = plt.figure()
ax = fig.add_subplot()
plt.show()
figure()에 figsize를 넣어줄 수 있다.
fig = plt.figure(figsize=(12, 7))
ax = fig.add_subplot()
plt.show()
하나의 figure을 두개의 공간으로 쪼개서 사용할 수도 있다.
fig = plt.figure()
ax = fig.add_subplot(121) # 1:2로 쪼개고 1번째
# ax = fig.add_subplot(1, 2, 1)로 사용가능
ax = fig.add_subplot(122) #1:2로 쪼개고 2번째
plt.show()
.plot()으로 그리기
fig = plt.figure()
ax = fig.add_subplot(111)
# 3개의 그래프 동시에 그리기
ax.plot([1, 1, 1]) # 파랑
ax.plot([1, 2, 3]) # 주황
ax.plot([3, 3, 3]) # 초록
plt.show()
위의 코드에서는 색상이 기본값으로 지정되었는데, color parameter을 통해 지정할 수도 있다.
텍스트 수정하기
더보기
Legend(범례) 추가하기
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 1, 1], label='1')
ax.plot([2, 2, 2], label='2')
ax.plot([3, 3, 3], label='3')
ax.set_title('Basic Plot')
ax.legend()
plt.show()
ax.legend()
더보기
라벨을 달아줘야 한다.
축 - ticks, ticklabels
set_xticks()함수로 축에 적히는 수 위치를 지정한다.
set_xticklabels() 함수로 축에 적히는 텍스트를 수정한다.
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 1, 1], label='1')
ax.plot([2, 2, 2], label='2')
ax.plot([3, 3, 3], label='3')
ax.set_title('Basic Plot')
ax.set_xticks([0, 1, 2])
ax.set_xticklabels(['zero', 'one', 'two'])
ax.legend()
plt.show()
Bar Plot
- vertical: x축에 category, y축에 value 표시
- horizontal: y축에 category, x축에 value 표시
horizontal에 category를 표기하는 방식은 category가 많을 때 적합하다고 한다.
fig, axes = plt.subplots(1, 2, figsize=(12, 7))
x = list('ABCDE')
y = np.array([1, 2, 3, 4, 5])
axes[0].bar(x, y)
axes[1].barh(x, y)
plt.show()
Stacked Bar Plot
Line Plot
Smoothing
Interpolation
Scatter Plot
이중축 쓰기
'MachineLearning' 카테고리의 다른 글
ILSVRC (0) | 2022.02.08 |
---|---|
[PyTorch] nn.Linear (0) | 2022.02.07 |
[ML] numpy 함수들 (0) | 2022.01.27 |
[MachineLearning] 몬테카를로 샘플링이란?(Monte-Carlo Sampling) (0) | 2022.01.19 |
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running. 오류 해결하기 (0) | 2021.11.05 |