본문 바로가기

InfoGraph

(12)
[찾아보기]matplotlib로 만든 애니메이션 모음 이 페이지는 matplotlib 애니메이션으로 만든 예제들을 보여주고, 해당 애니메이션 소스코드 및 설명이 있는 페이지 링크를 제공하는 페이지입니다. 01. matplotlib를 이용해서 애니메이션 그래프(Animation Graph) 만들기 matplotlib 애니메이션 제작을 위해 필요한 프로그램 깔기 등에 대해 가이드 해줌 02. [예제]사인 곡선(사인 그래프, sine graph) 그리기 03. [예제]흐르는 물결같은 사인파(사인 그래프, sine graph) 그리기 04. n이 커질수로 점점 펄스파가되는 애니메이션(변하는 텍스트 n값도 애니메이션) -끝-
04. n이 커질수로 점점 펄스파가되는 애니메이션(변하는 텍스트 n값도 애니메이션) 시간이 흐름에 따라 점점 펄스파(구형파)처럼 변하는 애니메이션을 만들어보겠다. 이러한 파형을 그리는 수식은 아래와 같다. $$ \sum _{n=1} ^{\infty} {\frac {4}{n\pi} \sin {nx}}$$ 이 수식은, 아래 그림과 같은 완벽한 펄스파를 푸리에 급수로 변환하면 나온다. 유도식이 궁금하면 여기 참조: 04-6. 푸리에 급수 예제를 손으로 풀어보기 이 애니메이션을 만들기 위한 핵심 코드는 아래와 같다. title = ax.text(1,1.7,"",bbox={'facecolor':'w', 'alpha':0.5,'pad':5},ha="center") def update(i): global yy y = (4/(i*np.pi))*np.sin(i*x) yy += y line.set_dat..
03. [예제]흐르는 물결같은 사인파(사인 그래프, sine graph) 그리기 아래 영상처럼, 물결이 흐르는 듯한 그래프를 만들어 볼 것이다. 원리는 간단하다. 사인 함수에서 $\sin {(x-a)}$는 $\sin x$의 그래프를 $a$만큼 오른쪽으로 이동한 것과 같다는 원리를 이용. 핵심 코드는 update 함수 안에 있다. def update(i): y = np.sin(x-i) # i만클 shift하는 것임 line.set_data(x, y) return ln, 동영상의 각 프레임마다 이 update함수가 호출될 것이고, 호출될 때마다 $i$값이 1,2,3...으로 증가되어 보내질 것이다. 그렇다면 그 때의 y값은 아래 그림과 같은 모양을 띨 것이고, 이 그림들을 연속으로 보여주면, 마치 파형이 이동하는 것처럼 보일 것이다. 전체 소스는 아래와 같다. import numpy a..
02. [예제]사인 곡선(사인 그래프, sine graph) 그리기 첫 번째 예제이기에, 상세히 코드를 설명할 것이고, 작성된 코드를 이용해서 mp4 및 gif로 만드는 방법도 소개할 것이다. 이다음 예제부터는 애니메이션 핵심 코드를 중심으로만 설명할 예정. 사인 곡선을 그리는 애니메이션을 만들어볼 것이다. 그런데, 애니메이션 코드로 바로 들어가기 전에, 일반적인 정지되어 있는 사인 곡선을 먼저 그려보겠다. 그것이 애니메이션 코드를 바로 소개하는 것보다, 이해가 더 잘될 거 같다. 사인 곡선을 그리는 코드의 핵심은, 1)$x$에 해당하는 값들을 생성하고, 2) 그 $x$ 값들의 sine값을 구해서 $y$에 저장하고, 3) plot 하는 것. 1) x = np.linspace(0, 2*np.pi, 100) 2) y = np.sin(x) 3) plt.plot(x,y) 주피터..
01. matplotlib를 이용해서 애니메이션 그래프(Animation Graph) 만들기 파이썬에서 그래프를 그리게 해주는 matplotlib에는, 정적인 그래프뿐 아니라, 동영상 애니메이션 그래프를 만들어주는 기능도 있다. 예를 들어 이런 거다. 이에 대한 코드는 여기 참조. (Matplotlib 사이트에서 샘플로 제시하는 코드이다.) matplotlib.org/stable/gallery/animation/double_pendulum.html 사전 준비 작업 (추가 프로그램 설치) 위와 같은 동영상을 만드는 것은, matplotlib의 함수를 써서 하면 되는데, 이것을 mp4나 gif로 만들어서 보려면 추가로 프로그램을 설치해야 한다. (matplotlib 패키지는 이미 설치되어있다고 가정) ffmpeg ImageMagic 위의 두 개를 따로따로 설치해도 되는데, ImageMagic 설치파..
삼각함수의 덧셈 정리 삼각 함수의 덧셈 정리 $$ \sin (\alpha + \beta) = \sin \alpha \cos \beta + \cos \alpha \sin \beta $$ $$ \sin (\alpha - \beta) = \sin \alpha \cos \beta - \cos \alpha \sin \beta $$ $$ \cos (\alpha + \beta) = \cos \alpha \cos \beta - \sin \alpha \sin \beta $$ $$ \cos (\alpha - \beta) = \cos \alpha \cos \beta + \sin \alpha \sin \beta $$ 정리에 대한 증명 애니메이션 위 애니메이션을 제작한 파이썬 코드 소스코드는 GIT에서도 볼 수 있음 github.com/rhaos6..
[북 리뷰]팩트풀니스(FACTFULNESS): 직선 본능 이번에 소개할 내용은 팩트풀니스 책 중에서 '직선 본능'입니다. 앞에서 '간극 본능'과 '부정 본능'에 대해 쓰고 나서, 팩트풀니스에 대해서는 더 쓰지 않으리라 생각했는데, '직선 본능'을 읽으면서 떠오르는 생각들이 있어 안쓸 수가 없네요. 역시나 챕터 하나하나마다 버릴 것이 없는 책입니다. 팩트풀니스한스 로슬링(Hans Rosling),올라 로슬링(Ola Rosling),안나 로슬링 뢴룬드(Anna Rosling Ronnlund) 상세보기 직선 본능 오늘날 세계 인구 총 0~15세 아동은 20억이다. 유엔이 예상하는 2100년의 이 수치는 몇일까? 아래 그래프에서 하나는 유엔의 공식 예상치이고 나머지는 임의로 만든 선. 답은 C번으로 20억명이라합니다. 1950년에서 2000년까지 50년간 약 10억 ..
[북 리뷰]팩트풀니스(FACTFULNESS): 부정 본능 '부정 본능'은 팩트풀니스 책에서 소개되는 10가지 오해 중 두 번째 오해로 '좋은 것보다 나쁜 것에 주목하는 성향'을 얘기합니다. 팩트풀니스한스 로슬링(Hans Rosling),올라 로슬링(Ola Rosling),안나 로슬링 뢴룬드(Anna Rosling Ronnlund) 상세보기 한스 선생님이 여기서 얘기하고자 하는 바는, 옛날에 비해 세계가 나빠졌다고 생각하지만 전혀 그렇지 않고, 세상은 점점 더 좋은 방향으로 발전하고 있다는 것입니다. 전 세계는 20년 전만 해도 전체 인구의 29%가 극빈층이었지만, 이제는 그 비율이 9%로 줄었을 정도로 크게 변했다. 오늘날에는 거의 모든 사람이 지옥을 탈출했다. 우리는 파티를 열어야 한다. 그것도 성대한 파티를! 그런데 우리는 우울하다. 4단계 삶을 사는 우리..
[북 리뷰]팩트풀니스(FACTFULNESS): 간극 본능 팩트풀니스는 존경하는 한스 로슬링 선생님이 세상을 떠나기 직전에 집필한 책입니다. 팩트풀니스 국내도서 저자 : 한스 로슬링(Hans Rosling),올라 로슬링(Ola Rosling),안나 로슬링 뢴룬드(Anna Rosling Ronnlund) / 이창신역 출판 : 김영사 2019.03.08 상세보기 2010년쯤으로 기억하는데, 그때 봤던 비디오 영상을 통한 프린젠테이션은, 한참 멋진 프레젠테이션을 하려면 어떻게 해야 할까를 고민하던 저에게 충격적인 영상이었습니다. 가로축과 세로축에 의한 구분, 그리고 원형 물방울 크기, 물방울의 색깔, 그리고 시간의 흐름에 따른 변형, 이렇게 무려 5가지의 정보를 한 화면에서 보여주는 기법의 화려함과 어우러진 데이터가 뇌에 뭉태기로 전달될 때의 충격이란.... FACT..
막대 그래프 (Bar Chart) 그리기 원칙 데이터를 시각화하는 데 있어, 아마도 가장 흔하게 사용되는 그래프가 막대그래프일 것입니다. 사각형의 높이로 값을 나타내서 비교하는 것이기에, 그리는 입장에서는 네모진 막대를 몇 개 그리면 되는 것이고, 보는 입장에서는 사각형의 높이만 보면 되는 것이기에 한눈에 이해가 됩니다. 우리 뇌가 이러한 높고 낮음에 대한 분별을 잘하도록 진화되었는지도 모릅니다. 여하튼, 이러한 제일 간단하다는 막대그래프도 막상 그려놓고 보면 뭔가 이상할 때가 있습니다. 여기서는, 막대그래프를 그릴 때 자주 실수하는 부분들과 고쳐진 모습, 좀 더 예쁘고 명확하게 표현할 수 있는 방법들을 서로 비교해가며 알아보겠습니다. 막대의 출발점은 항상 0이어야 한다. 아래 도표는 경상남도/북도, 전라남도/북도의 인구수를 보여줍니다. 오해의 소지..