바 차트
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()
'Python Library > Matplotlib' 카테고리의 다른 글
[Matplotlib] triangular grid (0) | 2022.02.22 |
---|---|
[Matplotlib] 여러가지 플롯 (2) (0) | 2022.02.22 |
[Matplotlib] 시각화 패키지 (4) (0) | 2022.02.22 |
[Matplotlib] 시각화 패키지 (3) (0) | 2022.02.22 |
[Matplotlib] 시각화 패키지 (2) (0) | 2022.02.22 |