250x250
Notice
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Today
Total
관리 메뉴

serendipity

Matplotlib 본문

Study/Big Data

Matplotlib

z 2021. 7. 10. 15:34
728x90

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) : 공간 중 지금 내가 사용할 부분 

 

Matplotlib 해부도 (참조)

 

 


 

 

여러가지 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()

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()

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()

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()

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()

plot.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()

 

plot.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()

plt.show() 결과

 

 

 

728x90

'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
Comments