이번 포스팅에서는 R ggplot2 패키지의 함수를 Python에서 그대로 사용하여 그래프를 그릴 수 있게 해주는 Python의 PlotNine library를 소개하겠습니다. 


R ggplot2 패키지의 그래프 기능이 굉장히 강력하고 체계적이며 이쁘기 때문에 많은 분석가들이 시각화 도구로 R ggplot2를 사용하고 있습니다. 저도 R ggplot2와 RShiny 의 굉장한 팬이기도 합니다. R ggplot2에 이미 익숙한 사용자라면 R ggplot2 함수를 Python에서 그대로 사용하여 시각화를 할 수 있다면 매우 편리하고 빠르게 시각화를 할 수 있을 것입니다. 



연도별 월별 항공기 탑승객 수를 저장해놓은 flights 데이터프레임을 사용하여 파이썬의 PlotNine 라이브러리를 사용하여 파이썬에서 R ggplot2 함수로 선 그래프와 히트맵을 그려보겠습니다. 



import matplotlib.pyplot as plt

import seaborn as sns

plt.rcParams['figure.figsize'] = [10, 8]

 



먼저 flights 데이터프레임을 seaborn 라이브러리에서 가져와 로딩하였습니다. 



# data loading

flights = sns.load_dataset('flights')

flights.head()

yearmonthpassengers
01949January112
11949February118
21949March132
31949April129
41949May121

 




PlotNine 라이브러리를 처음 사용한다면 아래처럼 명령 프롬프트에서 pip install plotnine 으로 설치해주세요. 


  명령 프롬프트에서 'PlotNine' 라이브러리 설치하기



Microsoft Windows [Version 10.0.17134.523]

(c) 2018 Microsoft Corporation. All rights reserved.


C:\Users\admin>conda env list

# conda environments:

#

base                  *  C:\Users\admin\Anaconda3

py_v35                   C:\Users\admin\Anaconda3\envs\py_v35

py_v36                   C:\Users\admin\Anaconda3\envs\py_v36



C:\Users\admin>activate py_v36


(py_v36) C:\Users\admin>pip install plotnine

 





  (1) PlotNine 라이브러리를 사용하여 파이썬에서 R ggplot2 함수로 선 그래프 그리기


일단 plotnine에서 import * 로 모든 클래스를 불러오고 나면 그 다음부터는 R ggplot2 함수를 정확히 똑같이 사용해서 jupyter notebook에서 파이썬 데이터프레임으로 선 그래프를 그릴 수 있습니다. 신기하고 놀랍지요?!  PlotNine 라이브러리 만들어주신 분들에게 깊은 감사를 드립니다. ^^



# line graph using R ggplot2 function in Python environment by plotnine library

from plotnine import *


fig = plt.figure()


ggplot(flights, aes(x='year', y='passengers', group='month', color='month')) \

    + geom_line() \

    + ggtitle('Time Series Graph of Flight')

 






  (2) PlotNine 라이브러리를 사용하여 파이썬에서 R ggplot2 함수로 히트맵 그리기



# heatmap using R ggplot2 function in Python environment by plotnine library

from plotnine import *


fig = plt.figure()


ggplot(flights, aes(x='year', y='month')) \

    + geom_tile(aes(fill='passengers')) \

    + scale_fill_gradientn(colors=['#9ebcda','#8c6bb1','#88419d','#6e016b']) \

    + ggtitle('Heatmap of Flights by plotnine')



많은 도움이 되었기를 바랍니다. 


이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요.  :-)



728x90
반응형
Posted by Rfriend
,