Doing mathwithpython.ch02

Preview:

Citation preview

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

윤석준 (seokjoon.yun@gmail.-com)

파이썬으로 풀어보는 수학

상세설명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

3

1. matplotlib 설치

> pip install matplotlib-venn

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

4

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

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

5

1. matplotlib step. 2 Marker 표시

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

6

1. matplotlib step. 3 Line 지우기

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

7

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

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

8

1. matplotlib step. 5 X 축값 추가

X 축 값을 2000 ~ 2012 으로 추가

9

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

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

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

11

1. matplotlib step. 8 Title, Label 추가

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

12

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

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

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

13

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

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

14

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

savefig(‘ 경로 및 파일명’ )

15

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

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

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

16

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

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

19

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

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

• 비행시간은 그 2 배

20

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

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

21

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

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

22

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

23

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

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

25

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

26

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

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

27

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

계산하세요 .

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

28

수평막대 차트 예제

29

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

30

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

Thanks