티스토리 뷰

Project : Py_EX

Python file : EX02_sineplot.py

IDE : PyCharm [설치방법]

 

 

이전 글 참조

 

[Python] 사인함수(삼각함수) 사용해보기

이전글 참고 : 2020/07/12 - [Engineering/Python] - [Python] math.pi 대신 pi로 원주율(π) 사용하기 Project : Py_EX Python file : EX01_sinefunction.py 모듈에서 원주율(π)을 가져다 쓰는법도 배웠으니 이..

generalbulldog.tistory.com

 

사인함수를 사용해 보았으니 이번에는 그래프를 그려보자. 위키피디아 Sine에 그려져 있는 그래프를 파이썬으로 그리자.

 

 

 

Sine - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search trigonometric function of an angle In mathematics, the sine is a trigonometric function of an angle. The sine of an acute angle is defined in the context of a right triangle: for the s

en.wikipedia.org

 


 

 

# 사인함수 그래프 분석

 

위키피디아에서 가져온 1주기 사인 그래프

 

 

위키피디아에서 가져온 사인 그래프는 x축이 radian으로 되어있고 y축이 sin(x)인 그래프 이다. 즉 아래와 같은 함수로 표현이 가능하다.

 

주기는 1주기[x축 : 0~2π] 크기는 1[y축 : -1~1]인 사인함수이다. 

 

 

# 준비하기

 

그래프를 그리려면 x 데이터와 함수가 필요하겠다. 이번 예제에서 x 데이터는 0에서 2π까지 n개로 쪼개서 x라는 변수에 넣어주면 되겠다. 어떻게?

 

 numpy 라는 모듈을 사용하자, matlab에 익숙한 공학도들이라면  numpy 라는 모듈은 절대 낯설지 않을 것이다. 이 모듈은  math 모듈과는 달리 빌트인 모듈이 아니라서 특별한 방법으로 설치해 주어야 한다. 일반적으로  pip 라는 설치 모듈을 사용하지만 몇몇 개발환경에서는 쉬운 모듈 설치 방법을 제공한다. 내가 쓰고있는 파이참도 그 중 하나이다.

 

일단, 그 전에 지난번에 만든 프로젝트(Py_EX)에 새로운 파이썬 파일을 생성하자. 이름은 두번째 예제니깐 "EX02_sinplot.py" 정도면 적당히 알아볼 수 있겠다. 

 

파이썬 파일 생성

 

이 프로젝트에서 아직 모듈을 가져온 적이 없기 때문에 이번 예제에서 필요한 등간격 x 데이터를 만들어 줄  numpy 모듈과 그래프를 그릴 때 사용할  matplotlib 모듈을 설치해주자. 파이참은 아래와 같이 쉽게 모듈을 설치할 수 있다.

 

메뉴(파일) > 설정 > 프로젝트: > Python 인터프리터 > +

 

 

모듈 검색 > 패키지 설치

 

패키지 설치를 클릭하고 한참(느낌상)을 기다리면 설치가 완료되었다는 알림을 준다.  matplotlib 모듈도 동일한 방법으로 설치해주자. 두 가지의 모듈을 설치했는데 이것 저것 같이 설치 되어있다. 필요해서 설치 한 것이겠지 하고 넘어가자.

 

numpy와 matplotlib 모듈이 설치된 모습

 

 

# x 데이터 생성하기

 

이제 모듈도 준비가 되었으니 x 데이터를 만들어보자. 0부터 2π까지 n개(여기서는 한,,, 1000개로 하자)로 쪼개서 변수 x에 저장하려고 하는데,  numpy 모듈의  linspace 함수를 사용할 것이다.

 

import numpy as np

start = 0
end = 2 * np.pi
dx = 1000
x = np.linspace(start, end, dx)

 

  • 함수 앞에 계속해서 쓰기에  numpy 는 너무(?) 길기 때문에 np라는 짧은 이름으로 사용하기 위해  as np 로 가져왔다. 보통  numpy 모듈은  np 로 많이 가져와서 사용하더라.
  •  numpy 에도  pi 상수가 내장되어 있어서 따로  math 모듈을 가져오지 않고  numpy 모듈을 사용하였다.

만들려고 했던 x 데이터를 생성하였다. 실행해도 아무것도 나오지 않겠지만 print 함수로 출력해보면 분명 x라는 변수에 0부터 2π 까지 1000개의 데이터가 들어가 있을 것이다. * 데이터 갯수를 확인하려면 print(len(x))로 데이터 수를 출력해 볼 수 있다.

 

 

# 그래프 그리기

 

위에서 설치한  matplotlib 모듈에서 그래프를 그리기 위한 함수  pyplot  만 가져오자. 이번에도 모듈명을 줄여서 "plt"로!

 

import numpy as np
from matplotlib import pyplot as plt

start = 0
end = 2 * np.pi
dx = 1000
x = np.linspace(start, end, dx)

plt.plot(x, np.sin(x))

 

그리고 사용방법은  plot(x,y)  !! matlab이랑 너무 똑같아서 놀랐지만.  pyplot  태생자체가  matplotlib 모듈이 matlab처럼 작동하게 하는 함수의 모음이라고 한다. 만드신 분 감사합니다. 더 궁금하면 아래 링크를 읽어보자. 참고로 영어다.

 

 

 

Pyplot tutorial — Matplotlib 3.3.1 documentation

text can be used to add text in an arbitrary location, and xlabel, ylabel and title are used to add text in the indicated locations (see Text in Matplotlib Plots for a more detailed example) All of the text functions return a matplotlib.text.Text instance.

matplotlib.org

 

아, 삼천포로 빠지지 말고! 위 코드를 실행하면 그래프 창이 뜬다.

 

 

이 글 제일 처음에 위키피디아에서 가져온 그래프와 비슷한 그래프가 떴다. 분명 그 그래프와 동일한 데이터의 그래프 일 것인데(물론 데이터 갯수는 다를 수 있지만) 눈금(grid)도 없고, x축 표시 방식도 다르고, 등등. 완벽히 마음에 들지는 않다. 

 

오늘은, 여기까지! 너무 글이 길어지면 읽는 사람도 피곤할테니. 다음에는 이 그래프를 매만져서 위키피디아 그래프와 비슷하게 만들어보는 재미있는 작업을 해보자.

 

 

다음 글

 

 

[Python] pyplot 그래프 편집하기

이전 글 참조 [Python] 사인함수 그래프 그려보기 이전글 참조 : 2020/09/05 - [Engineering/Python] - [Python] 사인함수(삼각함수) 사용해보기 Project : Py_EX Python file : EX02_sineplot.py 사인함수를 사용..

generalbulldog.tistory.com

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함