본문 바로가기

Python

(5)
[Python] 그래프의 특정 부분을 확대하여 PIP로 표현하기. 위 그래프는 $ \frac{dy}{dt} = y-t^2+1 $ 이라는 ODE를 $t=0$ 에서 $t=2.0$ 까지 해석적인 방법 (파란색) 과 다양한 수치적인 방법들 (Euler method ~ RK4 method) 을 이용해서 풀어낸 것이다. Euler method와 나머지 방법은 t가 증가함에 따라 꽤 오차가 많이 나기 때문에 쉽게 구분가능하지만, 나머지 방법들은 꽤나 정확해서 어떤게 오차가 더 큰지 한 눈에 알아보기 어렵다. 위 경우에서 궁금한 부분을 확대해서 볼 수 있는 트릭이 여러가지가 있었다. 그 중 나는 mpl_toolkits에서 제공하고 있는 zoomed_inset_axes를 사용했다. 내가 원하던 방식이 딱 이것(Picture in picture방식)이었고, 제일 깔끔했기 때문이다. 나는..
[Python] 그래프 축(axis)에 단위 표현하기 Python의 matplotlib을 이용해서 graph를 그릴 때, x축과 y축에 단위를 넣고 싶을 때가 있다. 이럴 때는 axis의 Formatting을 해 줌으로써 표현할 수 있다. 코드는 다음과 같다. import matplotlib.pyplot as plt import matplotlib.ticker as mticker #테스트 데이터 x = [i * 55 for i in range(1, 11)] y = [0.219, 0.402, 0.543, 0.646,0.765, 0.880,1.169, 1.358,1.492,1.611] #단위 생성 plt.gca().xaxis.set_major_formatter(mticker.FormatStrFormatter('%.1f s')) plt.gca().yaxis.se..
[Python]Google Colab.에서 밤 하늘의 별 개수 세기 밤하늘을 카메라로 찍어본 적이 있는가? 도심은 빛 공해가 너무 심해서 별을 보기 어렵지만, 조용한 시골로 여행을 떠나면 밤하늘을 수놓은 별들을 관찰할 수 있다. 그런데, 이 사진속에 별이 몇개인지 어떻게 알 수 있을까? 손으로 일일히 세기에는 너무 많은데, 컴퓨터로 셀 수 있지 않을까? 위와 같은 검은색 배경에서 아주 작은 점과 같은 별의 개수를 세는 것을 영상처리에서는 "Blob을 찾는다" 혹은 "Edge를 검출한다"고 한다. 사진속 무늬가 별이라는 사실을 잠깐 잊으면, 검은색 배경에 얼룩이 묻어있는 것 처럼 보이기도 한다. Blob을 찾는 알고리즘중에 가장 유명한 방법은 바로 Laplacian of Gaussian (LoG)이다. LoG 알고리즘은 망막신경절(Retinal ganglion cells,..
[Python]Plotly를 이용해 극좌표 그래프 그리기 오늘은 Google Colab. 환경에서 Plotly를 이용해 극좌표 그래프를 그리는 방법에 대해 알아본다. Plotly를 이용해 극좌표 그래프를 그리는 방법에는 두 가지 정도가 있다. 한가지는 Plotly.express package를 사용하는 방법, 다른 한가지는 plotly.graph_objects 를 이용하는 방법이다. 이름에서도 유추할 수 있듯이, express package를 사용하면 빠르게 그릴 수 있는 대신, 세부적인 옵션은 조절하기 어렵다. 반면 graph_objects는 세세하게 조절할 수 있는 대신 처음부터(?) 그려야한다. 그림에 비유하면 Plotly express는 컬러링 북을 사서 색칠만 하는 느낌이고, Plotly graph_objects는 직접 스케치부터 하는 느낌이다. 무슨..
[Python]Google Colab.에서 Plotly를 Display하고, html로 저장하는 방법. Plotly는 Interactive한 graph를 만들어주는 python package이다. Plotly라는 패키지가 아직까지는 그렇게 유명한 패키지는 아닌 것 같고, 왠만한거 다 깔려있는 구글 Colab.에도 직접 설치를 해서 사용해야되는데 제대로 설명되어있는 곳이 없어 직접 몇군데 돌아다니며 알아봤다. 먼저 chart_studio 를 깔아준다. !pip install chart_studio 이 안에 plotly package가 포함되어있다고 한다. 다음, cufflinks를 설치해준다. cufflinks를 설치하면 pandas에서 바로 데이터를 plotly로 넘겨서 그래프를 제작해준다! 필요없으면 생략. !pip install cufflinks 이제 설치가 모두 끝났으면, 필요한 패키지를 불러온다. ..