본문 바로가기
Python Library/Matplotlib

[Matplotlib] 여러가지 플롯 (1)

by goatlab 2022. 2. 22.
728x90
반응형
SMALL

바 차트

 

x 데이터가 카테고리 값인 경우에는 bar 명령과 barh 명령으로 바 차트 (bar chart) 시각화를 할 수 있다. 가로 방향으로 바 차트를 그리려면 barh 명령을 사용한다. ( http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar , http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.barh)   

 

바 차트 작성시 주의점은 첫번째 인수인 left 가 x축에서 바(bar)의 왼쪽 변의 위치를 나타낸다는 점이다.

 

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

 

xerr 인수나 yerr 인수를 지정하면 에러 바 (error 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()

 

스템 플롯

 

바 차트와 유사하지만 폭 (width)이 없는 스템 플롯 (stem plot)도 있다. 주로 이산 확률 함수나 자기상관관계 (auto-correlation)를 묘사할 때 사용된다. (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.stem)

 

x = np.linspace(0.1, 2 * np.pi, 10)
plt.title("Stem Plot")
plt.stem(x, np.cos(x), '-.')
plt.show()

 

파이 차트

 

카테고리 별 값의 상대적인 비교를 해야 할 때는 pie 명령으로 파이 차트 (pie chart)를 그릴 수 있다. 파이 차트를 그릴 때는 윈의 형태를 유지할 수 있도록 다음 명령을 실행해야 한다. (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.pie)

 

plt.axis('equal')

 

히스토그램

 

히스토그램을 그리기 위한 hist 명령도 있다. hist 명령은 bins 인수로 데이터를 집계할 구간 정보를 받는다. 반환값으로 데이터 집계 결과를 반환한다. (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist)

 

np.random.seed(0)
x = np.random.randn(1000)
plt.title("Histogram")
arrays, bins, patches = plt.hist(x, bins=10)
plt.show()

arrays
--> array([  9.,  20.,  70., 146., 217., 239., 160.,  86.,  38.,  15.])

bins
---
array([-3.04614305, -2.46559324, -1.88504342, -1.3044936 , -0.72394379,
       -0.14339397,  0.43715585,  1.01770566,  1.59825548,  2.1788053 ,
        2.75935511])

 

스캐터 플롯

 

2차원 데이터 즉, 두 개의 실수 데이터 집합의 상관관계를 살펴보려면 scatter 명령으로 스캐터 플롯을 그린다. 스캐터 플롯의 점 하나의 위치는 데이터 하나의 x, y 값이다. (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.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)
plt.show()

 

데이터가 2차원이 아니라 3차원 혹은 4차원인 경우에는 점 하나의 크기 혹은 색깔을 이용하여 다른 데이터 값을 나타낼 수도 있다. 이런 차트를 버블 차트 (bubble chart)라고 한다. 크기는 s 인수로 색깔은 c 인수로 지정한다.

 

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

 

https://datascienceschool.net/01%20python/05.02%20%EB%A7%B7%ED%94%8C%EB%A1%AF%EB%A6%AC%EB%B8%8C%EC%9D%98%20%EC%97%AC%EB%9F%AC%EA%B0%80%EC%A7%80%20%ED%94%8C%EB%A1%AF.html

 

Matplotlib의 여러가지 플롯 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency -->

datascienceschool.net

 

728x90
반응형
LIST