본문 바로가기
공부/파이썬 Python

Matplotlib 애니메이션으로 Linear Regression 표현하기

by 혼밥맨 2021. 12. 26.
반응형

Matplotlib 애니메이션으로 Linear Regression 표현하기

1) x, y축에 하나씩 점 찍기

xy축 도면에 하나 씩 점 찍기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
import random
 
 
x_values = []
y_values = []
 
 
for _ in range(1000):                             # 점의 개수
  x_values.append(random.randint(0100))         # x축 값
  y_values.append(random.randint(0100))         # y축 값
  
  
  plt.xlim(0100)
  plt.ylim(0100)
 
  plt.scatter(x_values, y_values, color='black')  # 점의 색깔
  plt.pause(0.0001)                               # 점이 한 번 찍히고 다음에 점이 찍히기 까지의 시간
 
 
plt.show()
cs

 

 

2) x, y축에 한 번에 여러 점 찍기

xy축 도면에 10개 씩 점 찍기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
import random
 
 
x_values = []
y_values = []
 
for _ in range(1000):                                # 점의 개수
  x_values.append(random.randint(0100))            # x축 값
  y_values.append(random.randint(0100))            # y축 값
  
  # 10개를 한 번에 찍기
  if _ % 10 == 0:
    plt.xlim(0100)
    plt.ylim(0100)
 
    plt.scatter(x_values, y_values, color='black')    # 점의 색깔
    plt.pause(0.001)                                 # 점이 한 번 찍히고 다음에 점이 찍히기 까지의 시간
 
plt.show()
cs

 

3) x,y축 위 랜덤 점 위에 선형 회귀 그리기

xy축 위 선형회귀 선 애니메이션

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
31
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
import random
 
reg = LinearRegression()
 
x_values = []
y_values = []
 
for i in range(1000):
  x_values.append(random.randint(0100))
  y_values.append(random.randint(0100))
  
  x = np.array(x_values)
  x = x.reshape(-11)
 
  y = np.array(y_values)
  y = y.reshape(-11)
 
  
  # 5개 씩 찍기
  if i % 5 == 0:
    reg.fit(x, y)
    plt.xlim(0100)
    plt.ylim(0100)
    plt.scatter(x_values, y_values, color='gray')
    plt.plot(list(range(100)), reg.predict(np.array([x for x in range(100)]).reshape(-1,1)))
    plt.pause(0.001
 
plt.show()
cs

 

4) 랜덤 막대 그래프 그리기

랜덤 값 막대그래프 애니메이션

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import matplotlib.pyplot as plt
import random
 
# 막대 그래프의 개수
values = [0* 100
 
 
for i in range(100):
  values[i] = random.randint(0200)         # y 값 0에서부터 199까지 랜덤 난수 생성
  plt.xlim(0100)
  plt.ylim(0200)
  plt.bar(list(range(100)), values)
  plt.pause(0.0001)
 
plt.show()
cs

 

5) 코인 플립 막대 그래프로 나타내기

 Flipping Heads and Tails into Animation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# head / tail coin
 
import matplotlib.pyplot as plt
import random
 
heads_tails = [00]
 
for _ in range(100000):
  if _%50==0:
    heads_tails[random.randint(01)] += 1
    plt.bar([0,1], heads_tails, color=("blue""red"))
    plt.pause(0.001)
 
plt.show()
cs

 

Matplotlib Animation 만들기 끝.

 

반응형

댓글