polyfit(x,y,n) : 기울기(m)와 y절편값(b)을 구할 수 있음.
- 첫 번째 인자 : x 값에 대한 리스트
- 두 번째 인자 : y 값에 대한 리스트
- 세 번째 인자 : x의 차수
ex) 1인 경우, x의 1차 차수
linspace(start, end, num=개수) : start~end 사이의 값을 개수만큼 생성해 배열로 반환
import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [3,7,6,11,14]
m,b = np.polyfit(x,y,1)
def f(x):
return x*m + b
plt.plot(x,y,'o')
L = np.linspace(0, 6)
plt.plot(L, f(L))
import pandas as pd
import plotly.graph_objects as go
import numpy as np
covid_df = pd.read_csv('https://covid.ourworldindata.org/data/jhu/full_data.csv')
covid_df.head(3)
df = covid_df.query('location=="South Korea"').query('date>"2020.01.20"')
fig = go.Figure(data=[go.Scatter(x=df['date'], y=df['total_cases'])])
fig.add_trace(go.Scatter(x=df['date'], y=df['biweekly_cases']))
fig.add_trace(go.Scatter(x=df['date'], y=df['new_cases']))
a3,a2,a1,a,b,c,d,e,g = np.polyfit(df['total_cases'],df['new_cases'],8)
def f(x1):
return a3*x1**8 + a2*x1**7 + a1*x1**6 + a*x1**5 + b*x1**4 + c*x1**3 + d*x1**2 + e*x1**1 + g
x1 = np.linspace(np.min(df['total_cases']), np.max(df['total_cases']))
fig = go.Figure()
fig.add_trace(go.Scatter(x=df['date'], y=f(x1), mode='lines'))
fig.add_trace(go.Scatter(x=df['date'], y=['new_cases'], mode='markers'))
np.polyfit(x,y,n)