plot함수를 이용해 numpy 모듈로 추출한 랜덤한 데이터를 시각화 하는 방법을 소개합니다.
1
2
3
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
그래프 데이터 생성
1
2
3
4
5
6
7
x = np.linspace(0, 10, 11)
# x와 연관이 있도록 생성
y = x ** 2 + x + 2 + np.random.randn(11) #random을 추가해 일종의 noise 추가
print(x)
print(y)
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] [ 3.21296218 4.3128255 9.1887181 14.86129619 22.55897999 32.65802433 44.95035291 58.63330963 73.56553627 92.3407775 111.20280392]
그래프 출력하기
-
plot함수 (선 그래프), scatter(점 그래프), hist(히스토그램) 등 사용
-
함수의 parameter 혹은 plt의 다른 함수로 그래프 형태 및 설정을 변경 가능
-
기본적으로, x, y에 해당하는 값이 필요
-
Line plot
1
plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x129d7560790>]
Scatter plot
1
plt.scatter(x, y)
<matplotlib.collections.PathCollection at 0x129d75ba670>
그래프에 주석 추가
- x, y 축 및 타이틀
1
2
3
4
plt.xlabel('X values')
plt.ylabel('Y values')
plt.title('X-Y relation')
plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x129d76152e0>]
- grid 추가
1
2
3
4
5
plt.xlabel('X values')
plt.ylabel('Y values')
plt.title('X-Y relation')
plt.grid(True)
plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x129d766c7c0>]
- x, y축 범위 지정
1
2
3
4
5
6
7
8
9
plt.xlabel('X values')
plt.ylabel('Y values')
plt.title('X-Y relation')
plt.grid(True)
plt.xlim(0, 20)
plt.ylim(0, 200)
plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x129d76ce460>]
plot 함수 parameters
-
그래프의 형태에 대한 제어 가능
그래프의 색상 변경
1
plt.plot(x, y, '#ff00ff')
[<matplotlib.lines.Line2D at 0x129d77165b0>]
그래프 선스타일 변경
1
plt.plot(x, y, '-.')
[<matplotlib.lines.Line2D at 0x129d775eeb0>]
1
plt.plot(x, y, 'g^')
[<matplotlib.lines.Line2D at 0x129d77ccdf0>]
1
plt.plot(x, y, 'm:')
[<matplotlib.lines.Line2D at 0x129d782c730>]
-
그래프 두께 변경
-
linewidth 명시
1
plt.plot(x, y, 'm:', linewidth=9)
[<matplotlib.lines.Line2D at 0x129d7889040>]
-
keyword parameter 이용하여 모든 속성 설정
-
https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot
-
color
-
linestyle
-
marker
-
markerfacecolor
-
markersize 등등
1
2
3
plt.plot(x, y, color='black',
linestyle='--', marker='^',
markerfacecolor='blue', markersize=10)
[<matplotlib.lines.Line2D at 0x129d78dcb20>]
subplot으로 여러 그래프 출력하기
- subplot함수로 구획을 구별하여 각각의 subplot에 그래프 출력
1
2
3
4
5
6
7
8
9
10
11
plt.subplot(2, 2, 1)
plt.plot(x, y, 'r')
plt.subplot(2, 2, 2)
plt.plot(x, y, 'g')
plt.subplot(2, 2, 3)
plt.plot(y, x, 'k')
plt.subplot(2, 2, 4)
plt.plot(x, np.exp(x), 'b')
[<matplotlib.lines.Line2D at 0x129d89a7e80>]
hist함수 사용
-
histogram 생성
-
bins로 historgram bar 개수 설정
1
2
data = np.random.randint(1, 100, size=200)
print(data)
[99 89 83 43 23 1 14 28 76 75 9 14 39 22 12 71 43 36 13 31 66 1 1 22 99 83 87 84 88 74 35 56 13 92 98 35 51 27 65 63 61 81 83 38 64 31 72 56 71 8 77 81 21 6 65 38 54 63 68 76 5 25 48 99 33 24 35 30 50 44 7 84 68 5 37 43 72 85 40 42 28 57 18 53 80 32 66 18 57 84 24 45 57 75 2 6 20 85 36 53 77 57 3 97 12 93 4 48 51 21 75 9 15 29 38 37 71 97 42 19 83 33 83 33 76 55 20 73 88 79 23 3 44 98 89 7 4 88 33 65 52 40 18 72 65 83 80 87 25 99 46 45 34 31 68 7 7 51 80 61 54 30 13 71 35 62 86 26 79 78 64 5 23 12 13 49 1 59 48 56 62 25 64 68 75 34 40 36 4 79 46 85 17 13 14 46 6 95 66 9]
1
2
3
4
plt.hist(data, bins=20, alpha=0.3)
plt.xlabel('값')
plt.ylabel('개수')
plt.grid(True)
댓글남기기