31
Doing Math with Python Ch.02 그그그그 그그그 그그그 윤윤윤 ([email protected])

Doing mathwithpython.ch02

Embed Size (px)

Citation preview

Page 1: Doing mathwithpython.ch02

Doing Math with PythonCh.02 그래프로 데이터 가시화

윤석준 ([email protected])

Page 2: Doing mathwithpython.ch02

파이썬으로 풀어보는 수학

상세설명https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch02.ipynb

• 원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)

• 지은이 : 아미트 사하 (Amit Saha)• 원서 및 관련자료 : https://www.nostarch.com/doingmathwithpython• 번역서 : http://www.acornpub.co.kr/book/doing-math-with-python

Page 3: Doing mathwithpython.ch02

3

1. matplotlib 설치

> pip install matplotlib-venn

Jupyter notebook 에서 실행시 기본적으로 팝업으로 동작 inline 으로 실행하기를 원하면 아래 magic command 를 입력

Page 4: Doing mathwithpython.ch02

4

1. matplotlib step. 1 X,Y 좌표를 이용하여 Show( )

plot() 에 X, Y 좌표들의 list 를 입력하면 matplotlib.lines.Line2D 객체가 생성 show() 로 실행 Save 버튼을 이용하여 그럼 저장 가능

Page 5: Doing mathwithpython.ch02

5

1. matplotlib step. 2 Marker 표시

marker=‘o’ 를 세번째 인자로 넣어주면 표시됨 o , * , x , + 등 여러가지가 있음

Page 6: Doing mathwithpython.ch02

6

1. matplotlib step. 3 Line 지우기

Marker= 를 지우고 세번째 인자로 입력하면 마커만 표시됨

Page 7: Doing mathwithpython.ch02

7

1. matplotlib step. 4 뉴욕시 연간 평균온도 표시 (X 축값을 주지 않고 출력 )

2000 년에서 2012 년까지의 뉴욕시의 평균온도 ( 화시 ) 를 표시

Page 8: Doing mathwithpython.ch02

8

1. matplotlib step. 5 X 축값 추가

X 축 값을 2000 ~ 2012 으로 추가

Page 9: Doing mathwithpython.ch02

9

1. matplotlib step. 6 월간 온도 비교 ( 한 그래프에 여러개의 시리즈 출력 )

3 개 연도 (2000, 2006, 2012) 에 대한 12 개월에 대한 평균온도를 표시

Page 10: Doing mathwithpython.ch02

10

1. matplotlib step. 7 범주 (Legend) 출력

legend() 를에 시리즈별 명칭을 list 로 전달 두번째 인자로 위치를 설정할 수 있음 ( 숫자로 입력 )

•best -- 0

•upper right -- 1

•upper left -- 2

•lower left -- 3

•lower right -- 4

•right -- 5

•center left -- 6

•center right -- 7

•lower center -- 8

•upper center -- 9

•center -- 10

Page 11: Doing mathwithpython.ch02

11

1. matplotlib step. 8 Title, Label 추가

title() : 타이틀 xlabel() : x 축 레이블 ylabel() : y 축 레이블

Page 12: Doing mathwithpython.ch02

12

1. matplotlib step. 9 축 (axis) 조정

기본적으로 전체 데이터의 최소 , 최대 값으로 설정되어 있음 axis() : 함수를 이용해서 현재 설정값 확인 및 설정이 가능

axis([xmin, xmax, ymin, ymax]) : 로 한번에도 가능

Page 13: Doing mathwithpython.ch02

13

2. Pyplot 을 이용한 그래프 그리기 step. 1 출력

앞서 살펴본 방법과 거의 유사하나 객체로 관리함

Page 14: Doing mathwithpython.ch02

14

2. Pyplot 을 이용한 그래프 그리기 step. 2 그림파일 (png, pdf, svg 등… ) 로 저장

savefig(‘ 경로 및 파일명’ )

Page 15: Doing mathwithpython.ch02

15

3. 수식을 이용하여 그래프 그리기 3.1 뉴턴의 만유인력의 법칙

질량이 m1 인 물체와 m2 인 물체를 F 의 힘으로 끌어당김 (G : 중력상수 , r : 두 물체간의 거리 )

질량이 0.5kg 인 물체와 1.5kg 인 물체 사이의 중력을 구해보겠습니다 .거리는 19 개의 구간에 대하여 구하며 100m 에서 50 미터 간격으로 증가( 즉 , 100m ~ 1000m) 로 하 며 , 중 력 상 수 는 6.674 * 10**-11 을 사용하겠습니다 .

Page 16: Doing mathwithpython.ch02

16

3. 수식을 이용하여 그래프 그리기

Page 17: Doing mathwithpython.ch02

17

3. 수식을 이용하여 그래프 그리기 3.2 포물선 운동

그림출처 : Naver지식백과 Basic 고교생을 위한 물리 용어사전 : 포물선 운동

• 공의 초기 속도 (u), 각도 ( θ)• x 방향 : ux = u cosθ• y 방향 : uy = u sinθ

• 시간 (t) 에 대한 속도 (V)• x 속도 : Vx = u cosθ• y 속도 : Vy = u sinθ - gt

Page 19: Doing mathwithpython.ch02

19

3. 수식을 이용하여 그래프 그리기 3.2 포물선 운동

• 최고 점까지 올라가는 시간 = y 속도가 0 이 되는 순간

• 비행시간은 그 2 배

Page 20: Doing mathwithpython.ch02

20

3. 수식을 이용하여 그래프 그리기 3.2 포물선 운동

ex) 초기속도 5 m/s, 각도 45 도로 던진 경우 (g= 9.8 로 가정 )

Page 21: Doing mathwithpython.ch02

21

3. 수식을 이용하여 그래프 그리기 3.2 포물선 운동

• 0.001 초마다 좌료를 계산할 경우

Page 22: Doing mathwithpython.ch02

22

3. 수식을 이용하여 그래프 그리기 3.2 포물선 운동

Page 23: Doing mathwithpython.ch02

23

3. 수식을 이용하여 그래프 그리기 3.3 서로 다른 속도의 공들의 궤적

Page 24: Doing mathwithpython.ch02

프로그래밍 연습문제필자가 풀이한 답은 다음 Link 를 참고하세요 .https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch02.ipynb저자의 정답은 다음 Link 에 있습니다 .https://www.nostarch.com/doingmathwithpython

Page 25: Doing mathwithpython.ch02

25

1. 낮 동안 온도는 어떻게 변하나 ? 인터넷으로 다른 두 도시의 온도 변화를 검색한 뒤 그래프로 표현하세요 .

Page 26: Doing mathwithpython.ch02

26

2. 2 차방정식을 그림으로 표현하기

위 방정식에서 x 에 10 개의 값을 대입하여 그래프로 표현하세요 . y = 0 이 되는 해를 찾으세요 .

Page 27: Doing mathwithpython.ch02

27

3. 투척 궤적 비교 프로그램3.1 속도 , 투척각도를 입력받아서 체공시간 , 최대수평거리 , 최고수직높이를

계산하세요 .

3.2 여러 개를 입력받아서 그래프로 표현하세요 .

Page 28: Doing mathwithpython.ch02

28

수평막대 차트 예제

Page 29: Doing mathwithpython.ch02

29

4. 비용가시화각 항목별 사용금액을 입력받아서 수평막대 차트로 표현하세요 .

Page 30: Doing mathwithpython.ch02

30

5. 피보나치 순열과 황금비간의 관계 계산100 개의 피보나치 순열을 계산해서 숫자간의 비율을 그래프로 표현하세요 .

Page 31: Doing mathwithpython.ch02

Thanks