serendipity
Matplotlib 본문
Matpotlib 이란?
다양한 데이터를 많은 방법으로 도식화 할 수 있도록 하는 시각화 파이썬 라이브러리
Matplotlib 사용
import matplotlib
import matplotlib.pyplot as plt
* matplotlib는 아래와 같이 크게 두 가지 방법으로 사용할 수 있습니다.
- stateless API (objected-based) : 지정한 figure, ax에 그림을 그리는 방법 (직접 만들자!)
- stateful API (state-based) : 현재의 figure, 현재의 ax에 그림을 그리는 방법 (직접 지정하지 않고 자동으로 찾아서 plotting!)
figure : 그래프를 그릴 공간(종이) / ax(axes) : 공간 중 지금 내가 사용할 부분
여러가지 Plot
Matplotlib는 기본적인 라인 플롯 이외에도 다양한 챠트/플롯 유형을 지원합니다.
1. Bar Chart (바 차트)
x 데이터가 카테고리 값인 경우에는 bar 명령과 barh 명령으로 바 차트(bar chart) 시각화를 할 수 있습니다.
가로 방향으로 바 차트를 그리려면 barh 명령을 사용하면 됩니다.
import matplotlib as mpl
import matplotlib.pylab as plt
y = [2, 3, 1]
x = np.arange(len(y))
xlabel = ['가', '나', '다']
plt.title("Bar Chart")
plt.bar(x, y)
plt.xticks(x, xlabel)
plt.yticks(sorted(y))
plt.xlabel("가나다")
plt.ylabel("빈도 수")
plt.show()
* 바 차트 작성시 주의점은 첫번째 인수인 left 가 x축에서 바(bar)의 왼쪽 변의 위치를 나타낸다는 점입니다.
alpha는 투명도를 지정하는데, 0이면 완전 투명, 1이면 완전 불투명입니다.
np.random.seed(0)
people = ['몽룡', '춘향', '방자', '향단']
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))
plt.title("Barh Chart")
plt.barh(y_pos, performance, xerr=error, alpha=0.4)
plt.yticks(y_pos, people)
plt.xlabel('x 라벨')
plt.show()
2. Pie Chart (파이 차트)
카테고리 별 값의 상대적인 비교를 해야 할 때는 pie 명령으로 파이 차트(pie chart)를 그릴 수 있습니다.
파이 차트를 그릴 때는 윈의 형태를 유지할 수 있도록 다음 명령을 실행해야 합니다. - plt.axis('equal')
labels = ['개구리', '돼지', '개', '통나무']
sizes = [15, 30, 45, 10]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0)
plt.title("Pie Chart")
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')
plt.show()
3. Stem Plot (스템 플롯)
바 차트와 유사하지만 폭이 없는 스템 플롯입니다. 주로 이산 확률 함수나 자기상관관계를 묘사할 때 사용합니다.
x = np.linspace(0.1, 2 * np.pi, 10)
plt.title("Stem Plot")
plt.stem(x, np.cos(x), '-.')
plt.show()
4. Histogram (히스토그램)
히스토그램 (Histogram)은 도수분포표를 그래프로 나타낸 것으로서, 가로축은 계급, 세로축은 도수 (횟수나 개수 등)를 나타냅니다.
' hist ' 명령은 bins 인수로 데이터를 집계할 구간 정보를 받습니다. 반환값으로 데이터 집계 결과를 반환합니다.
np.random.seed(0)
x = np.random.randn(1000)
plt.title("Histogram")
arrays, bins, patches = plt.hist(x, bins=10)
plt.show()
5. Scatter Plot (스캐터 플롯 )
2차원 데이터 즉, 두 개의 실수 데이터 집합의 상관관계를 살펴보려면 scatter 명령으로 스캐터 플롯을 그립니다.
np.random.seed(0)
X = np.random.normal(0, 1, 100)
Y = np.random.normal(0, 1, 100)
plt.title("Scatter Plot")
plt.scatter(X, Y) # 스캐터 플롯의 점 하나의 위치는 데이터 하나의 x, y 값입니다.
plt.show()
- Bubble Chart (버블 차트)
데이터가 2차원이 아니라 3차원 혹은 4차원인 경우에는 점 하나의 크기 혹은 색깔을 이용하여 다른 데이터 값을 나타낼 수도 있는데, 이런 차트를 버블 차트(bubble chart)라고 합니다.
N = 30
np.random.seed(0)
x = np.random.rand(N)
y1 = np.random.rand(N)
y2 = np.random.rand(N)
y3 = np.pi * (15 * np.random.rand(N))**2
plt.title("Bubble Chart")
plt.scatter(x, y1, c=y2, s=y3)
plt.show()
'Study > Big Data' 카테고리의 다른 글
하둡 Ecosystem (0) | 2022.01.10 |
---|---|
Hadoop 하둡 (0) | 2021.08.24 |
Pandas 판다스 (0) | 2021.07.10 |
Numpy 넘파이 (0) | 2021.07.10 |
구글 고급 애널리틱스 (0) | 2021.07.08 |