파이썬에서 ggplot2(지지플랏) 사용하기

2019. 7. 14. 10:45

파이썬에는 다양한 데이터분석 관련 패키지들이 있다. 데이터 시각화 관련된 패키지들도 종류가 많다. 어느 것을 우위로 뽑기는 어려우며 각각 장단점이 있다. 최근에 R의 ggplot 패키지를 접할 기회가 생겼는데, 생각보다 직관적이고 편리한 문법에 매료됐다. 그리고, 파이썬에서도 ggplot2를 사용하고 싶어졌다.

오늘은 파이썬에서 ggplot2(지지플랏)을 사용하는 방법에 대해서 알아보도록 하겠다.


파이썬_ggplot



파이썬에도 다양한 시각화 관련되 패키지들이 있다. 필자의 블로글에서 다뤘던 시각화 패키지들은 아래와 같은 것들이 있다. seaborn도 많이 사용하는 것 같은데, 다음에 다뤄보도록 하겠다.
( 참조: matplotlib 설치 및 사용하기plotly그래프를 쥬피터 노트북에서 사용하기 )


R에는 시각화 관련 패키지로 ggplot2를 가장 많이 사용한다. 거의 독보적이라고 할 수 있다. 처음에는 문법이 어색하고 사용하기 불편했지만, 알수록 좋은 패키지인 듯 하다.
( 참조: ggplot의 그래프 구조와 문법 알아보기ggplot 문법 알아보기, aes(aesthetic)이란?ggplot의 geom함수, geometry에 대해서 알아보기 )



파이썬에도 ggplot2의 문법을 사용할 수 있게 해 주는 패키지가 있다. plotnine이라는 패키지이다. plotnine은 matplotlib 패키지를 기본으로 하고 ggplot2의 문법을 사용할 수 있게 해 주는 패키지이다. 하지만 파이썬의 문법이 R과는 다르기 때문에 완전히 일치하지는 않는다. 가장 큰 차이점은 아래와 같다.


1) ggplot을 괄호로 감싸줘야 한다.

ggplot의 +기호를 파이썬에서 어떻게 사용할 수 있나 궁금했는데, 결론적으로 사용이 가능하다. 다만, ggplot 구문 전체를 괄호로 감싸줘야 한다.


    from plotnine import *

    import matplotlib.pyplot as plt


    fig = plt.Figure()


    ( ggplot(df, aes(x="year")) 

      + geom_bar(stat="count")

    )



특이사항으로는 matplotlib패키지를 기본으로 하기 때문에, import해야 한다.


ggplot_바그래프

( plotnine으로 그린 바그래프 )



2) 변수명을 사용할 때 쌍따옴표를 넣어야 한다.

R에서는 변수명에 대부분 쌍따옴표를 넣지 않는다. 가끔 특이하게 쌍따옴표를 넣어야 하는 경우가 있어야 헷갈린다. 파이썬에서는 변수명에 쌍따옴표를 넣고, 이는 여기서도 동일하다.



    from plotnine import *

    import matplotlib.pyplot as plt


    fig = plt.Figure()


    df["year"] = df["year"].astype(str)


    (ggplot(df, aes(x="sessions", y="bounceRate", fill="year"))

     + geom_point()

     )



위의 코드에서 year는 numeric이다. R에서는 factor함수를 이용해서 fill = factor(year)로 작성하면 되지만, 파이썬이니 위에서 스티링으로 바꿔주었다. 파이썬에서 geom_point를 그리니 아래와 같이 나왔다.


geom_point

( 파이썬에서 plotnine으로 그린 그래프 )


pltnine을 사용해보니 ggplot은 R에서 사용하는 것이 정신건강에 좋을 듯 하다. plotnine도 파이썬에서 ggplot의 문법을 충실히 구현하였지만, 차이점이 있다. 그리고 R보다 속도가 느려 답답함이 느껴진다. 결국 데이터를 R에 옮겨와서 하는 것이 훨씬 덜 스트레스 받고 사용할 수 있을 것 같다는 결론에 이르렀다. 



오늘은 이렇게 파이썬에서 ggplot2를 사용하는 방법에 대해서 알아보았다. plotnine이라는 패키지를 이용하여 ggplot2의 문법을 사용할 수는 있지만, 사용하다보면 생각보다 심란한다. 그냥 ggplot2는 R에서 사용하는 것이 좋겠다.


몇 가지 팁이나 방법을 알면 파이썬을 더 효율적으로 코딩할 수 있는 방법들이 있다. 자세한 내용이 궁금하다면, 아래 링크를 참조해보자.
( 참조: 파이썬 효율적인 코딩팁과 방법들 )


파이썬을 직접 활용하는 것만큼 효과적인 공부는 없다. 그래서 파이썬을 활용해서 할 수 있는 일드을 정리해보았다. 자세한 내용은 아래 포스팅을 참조해보자.
( 참조: 파이썬 활용, 파이썬 프로젝트로 할 수 있는 일들을 알아보자! )


댓글()
  1. Favicon of https://lapina.tistory.com BlogIcon 타이거웅스 2021.11.06 00:37 신고 댓글주소  수정/삭제  댓글쓰기

    ggplot 파이썬에서 쓰는 법 찾고 있었는데, R 만큼 직관적이진 않군요:-) 감사합니다.