파이썬으로 1차함수 그래프 그리기

2021. 4. 25. 07:31캐리의 데이터 세상/파이썬

반응형

수학 기초에 대한 결핍을 조금이나마 해소하고자 얼마 전 구매한 <기초수학 with 파이썬> 책을 새벽에 조금씩 보기 시작했는데요, 가물가물했던 함수 개념부터 소개하면서 이를 파이썬 코드로 구현하는 책이라 몇 달 동안 어려운 책들 보다가 첫 장에 덮어버렸던 것과는  다르게 꾸준히 1 회독을 목표로 합니다:) 해당 코드는 저자 GitHub에서도 확인할 수 있습니다. 

 

1. 일차 함수 그래프 그리기(파이썬)

arrowed_spines() 함수는 미리 만들어 놓은 함수를 호출했습니다. (GitHub 참고)

주피터 노트북으로 연습하면서 fig를 img 폴더에다 저장했는데요, 저장이 불필요하면 file_print == False  로 변경해주세요. Colab 환경을 위한 별도 환경설정 또한 깃헙에 나와 있습니다.

  • numpy.linspace(start, stop, num) 함수는 start에서 시작하여 stop 으로 끝나는 구간에서 num개 숫자를 등간격으로 생성하여 돌려줌. np.linspace(0,3,4)라고 하면 [0,1,2,3]이 반환됨 | numpy reference

 

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.style.use('bmh') #그래프에서 사용할 테마 설정은 plt.style.available에서 확인
mpl.style.use('seaborn-whitegrid')

fig=plt.figure(figsize=(10,7)) #크기 (10,7)인 그림 생성
ax = fig.add_subplot(1,1,1) # 그림에 좌표축 생성
ax.xaxis.set_tick_params(labelsize=18) #좌표축에 표시되는 좌표값 숫자 크기 지정
ax.yaxis.set_tick_params(labelsize=18) 
plt.xlabel('$x$', fontsize=25) # 축 이름, font 사이즈
plt.ylabel('$y$', fontsize=25)

x=np.linspace(-3, 2, 10) # 그릴 정의역 np.linspace(start, stop, num)함수로 생성, 정의역에 대한 함숫값 계산
y = 2*x+4 #2,3차 함수 그리고 싶으면 교체
ax.plot(x,y,'k') #평면에 연속 점 찍어 그래프 그리기. k 대신 '.'으로 바꿔 그리면 선 대신 점 열개만 찍힘

arrowed_spines(fig, ax) #미리 만들어 놓은 arrowed_spines() 함수 호출 (깃헙 참고)

if file_print == True :
    fig.savefig("img/fig2-10.png", dpi=100, bbox_inches='tight')

plt.show()

 

 

 

 

 

 

2. 1차함수 그래프

  • 첫 번째 그래프는 np.linspace(-3,2,10) 함수로 10개의 값만 계산했지만 ax.plot(x, y, 'k') k 옵션으로 계산한 값 사이를 채워줌.

일차함수-그래프
일차함수 그래프

 

 

  • 두 번째 그래프는 ax.plot(x, y, '.')으로 바꿔 점 열 개만 찍힘.

일차함수-점그래프
일차함수 점으로 표시

 

출처 :머신 러닝, 딥 러닝에 필요한 <기초 수학 with 파이썬> , 조준우 지음

 

 

 

 

 

반응형