티스토리 뷰
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
# 사인함수 그래프 분석
위키피디아에서 가져온 사인 그래프는 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 모듈을 설치해주자. 파이참은 아래와 같이 쉽게 모듈을 설치할 수 있다.
패키지 설치를 클릭하고 한참(느낌상)을 기다리면 설치가 완료되었다는 알림을 준다. 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
'Engineering > Python' 카테고리의 다른 글
[Python] 행렬 만들고 연산까지 해보기1 (1) | 2020.09.14 |
---|---|
[Python] pyplot 그래프 편집하기 (0) | 2020.09.06 |
[Python] 사인함수(삼각함수) 사용해보기 (0) | 2020.09.05 |
[Python] math.pi 대신 pi로 원주율(π) 사용하기 (0) | 2020.07.12 |
[Python] 원주율 pi(π), 모듈에서 가져다 쓰기 (0) | 2020.07.05 |
- Total
- Today
- Yesterday
- 터미널 실행
- 단위행렬
- 콘솔창 삭제
- Python
- 맛집
- pyplot
- sin
- 언어팩
- 모듈
- 갤럭시 워치 액티브2
- 액티브2
- Sine
- PyCharm
- Console 삭제
- 파이참
- 한글
- linalg
- numpy
- 그래프
- pyQT5
- PI
- 파이썬
- 행렬
- 배곧
- 기존 콘솔
- 갤럭시 워치
- qt designer
- 행렬의 곱
- 콘솔
- Python 콘솔에서 실행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |