- f(x) = (x-2)x(x+2) 그래프 그려보기
1. 일단 함수 f(x) 를 정의해봄
import numpy as np
import matplotlib.pyplot as plt
# 3차함수 그리기
def f(x):
return (x-2) * x * (x+2)
그리고 매개변수 값을 주고 그에 대한 값을 바로 array를 써서 행렬, 벡터로 만들어주기.
▼ 리스트 그대로 쓰면 리스트 하나가 통째로 들어가서 안되고. 배열로 만들어줘야함.
▼ 벡터, 행렬은 하나씩 요소가 실행되는 성질이 있기 때문에 하나씩 값을 넣어줌.
print(f(np.array([1,2,3])))
▼ 그래서 이렇게 그래프를 그려봐도됨
▼ 인수가 x축값(a), 출력값이 y축값(b)
a = np.arange(-10,11)
b = f(a)
plt.plot(a,b)
plt.show()
2. 그래프 범위를 결정하기
- np.arnage(low, high, step)으로 하면 좋긴하지만 그래프는
- linespace(low, high, n개의 구간) 이 훨씬 더 편하다.
▶high 값까지 포함되어서 n개의 구간으로 나눠서 값을 출력해줌
x = np.arange(-3, 3.5, 0.5)
print(x)
y = np.linspace(-3,3,10)
print(np.round(y,2))
3. 그래서 그래프를 그려보면...
▼ np.linspace(-3,3,100) 에서 구간을 100으로 분할하면 그래프가 좀 더 부드러운 곡선을 나타냄
▼ 그래프를 그리기 위해서는 배열을 벡터 형식으로 값이 나와야함.
▽ label과 title의 문자열은 '$'로 묶어 보기 좋은 Tex 기반 수식으로 지정할 수 있음(좀 더 전문가 스러운..ㅎㅋㅎ)
import numpy as np
import matplotlib.pyplot as plt
def f2(x, w):
return (x-w) * x * (x+2)
x = np.linspace(-3, 3, 100) #-3부터 3까지 100개 구간으로 쪼갬
plt.plot(x, f2(x,2), color='salmon', label='$w=2$') #계수2
plt.plot(x, f2(x,1), color='cornflowerblue', label='$w=1$') #계수1
plt.legend(loc="upper left") #(E) 범례표시
plt.ylim (-15, 15) #(F) y축의 범위
plt.title('$f_(x)$') #(G)제목
plt.xlabel('x') #x라벨
plt.ylabel('$y$') #y라벨
plt.grid(True)
plt.show()
4. 그래프 여러개 보여주려면
- plt.subplot(세로갯수n, 가로갯수n2, n 번째) > 왼쪽 위부터 1, 그 옆 2 (0이아니라 1부터 시작)
▼ plt.subplots_adjust(wspace=w, hspace=h)로 조절 가능. w 좌우간격 h 상하간격
import numpy as np
import matplotlib.pyplot as plt
def f2(x, w):
return (x-w) * x * (x+2)
x = np.linspace(-3, 3, 100)
plt.figure(figsize=(10,3)) #figure 지정
plt.subplots_adjust(wspace=0.5, hspace=0.5) #그래프의 간격을 지정
for i in range(6):
plt.subplot(2,3,i +1) #그래프 묘사의 위치 지정
plt.title (i+1)
plt.plot (x,f2(x,i),'olivedrab')
plt.ylim(-20,20)
plt.grid(True)
plt.show()
****번외 : 그래프에 사용하는 컬러 이름 목록 보여줌! color="색이름"을 사용해 적으면됨.
import matplotlib
matplotlib.colors.cnames
'머신러닝 > 개념익히기' 카테고리의 다른 글
지수함수와 로그함수 (0) | 2023.05.16 |
---|---|
행렬 (0) | 2023.05.16 |
머신러닝에 필요한 수학 기본 - 합 / 곱 / 미분 (0) | 2023.05.15 |
벡터와 연산 (0) | 2023.05.10 |
3차원 그래프 그리기 (0) | 2023.05.09 |