matplotlib에서 제공하는 차트는 여러개가 있더라구요?
데이터의 성격, 크기에 따라 차트의 종류를 효율적으로 선택하는 것이 좋을 것 같습니다.
한번 살펴보도록 하겠습니다.
subplot() 함수는 여러 개의 그래프를 하나의 그림에 나타내도록 합니다.
출처 : https://codetorial.net/matplotlib/subplot.html
이해하기 쉬운 이미지인 것 같아 가져와봤습니다.
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font', family='malgun gothic')
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(10)
# 1) matplot style의 인터페이스
# 그림을 그릴 도화지하나 준비했다고 생각하면 된다.
plt.figure()
# subplot(row, columns, 패널넘버)
plt.subplot(2, 1, 1) # 2행 1열 1인덱스
plt.plot(x, np.sin(x))
plt.subplot(2, 1, 2) # 2행 1열 2인덱스
plt.plot(x, np.cos(x))
plt.show()
위와 같이 한 그림에 2개의 그래프가 생성되었다.
이번엔 동일한 그림이 나오지만 방법이 조금 다른 경우이다.
# 2) 객체 지향 인터페이스
# 여기에서는 subplot() 이 아닌 subplots() 이다. 뒤에 s를 빼먹지 말자
fig, ax = plt.subplots(nrows=2, ncols=1)
ax[0].plot(x, np.sin(x))
ax[1].plot(x, np.cos(x))
plt.show()
1번 방법과 비슷한 방법도 있다.
fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
# 히스토그램 차트
ax1.hist(np.random.randn(10), bins=3, alpha=0.7)
# bins : 구간, alpha : 진함정도 1로 갈수록 진함, 0으로 갈 수록 연해짐
ax2.plot(np.random.randn(10))
plt.show()
이번에는 왼쪽에 히스토그램 차트를 그려보았다.
막대 그래프 차트(데이터의 양이 많지 않을 때 주로 사용한다.)
# 막대 그래프(차트) -> 데이터의 양이 많지 않을 때 주로 사용한다.
data = [50, 80, 100, 55, 90]
# bar() : 새로 막대
plt.bar(range(len(data)), data)
plt.show()
가로로 막대를 그린 그래프이다.
data = [50, 80, 100, 55, 90]
# barh() : 가로 막대
plt.barh(range(len(data)), data)
plt.show()
data = [50, 80, 100, 55, 90]
# 원 그래프 (파이차트)
plt.pie(data, explode=(0,0.2,0,0,0), colors=['yellow','red','blue'])
plt.show()
data = [50, 80, 100, 55, 90]
# 박스 그래프(box plot)
plt.boxplot(data)
plt.show()