plotly그래프를 쥬피터 노트북에서 사용하기!

목차

    2019. 6. 3. 06:51

    파이썬에는 그래프를 그릴 수 있는 모듈이 많이 있다. 가장 많이 쓰이는 matplotlib부터 seaborn, bokeh 등 각자 장단점이 있기 때문에 어느 하나를 선택하기가 쉽지 않다. 그 중에서 plotly는 D3기반의 대화형 그래프를 만들어 준다는 장점이 있다. 그래서 그래프도 이쁘고 다른 사람들에게 보여주기도 좋다.

    오늘은 plotly를 쥬피터 노트북에서 사용하는 방법에 대해서 알아보도록 하겠다.


    plotly



    plotly를 이용해서 그래프를 그릴 때는 온라인에 그릴 수도 있고, 오프라인에 그릴 수도 있다. 여기서는 오프라인으로 그래프를 그리는 방법에 대해서 알아보도록 하자.

    오프라인으로 그리기 위해서는 크게 2가지 모듈을 불러와야 한다. plotly.offline.plot과 plot.graph_obj이다. 하나는 offline에 그리는 것을 알려주기 위해 다른 하나는 실제 그래프를 그리기 위해 필요한 모듈이다. 아래와 같이 코드를 실행하면 'temp-plot.html'로 그래프가 그려진다.


      import plotly

      from plotly.graph_objs import Scatter, Layout


      plotly.offline.plot({

          "data": [Scatter(x=[1, 2, 3, 4], y=[4, 3, 2, 1])],

          "layout": Layout(title="hello world")

      })


    산점도

    ( plotly 산점도 )


    하지만 위와 같이 실행을 하면 별도의 html파일이 생성되기 때문에, 별도의 브라우저가 실행되며 그래프를 보여준다. 한 화면에서 보고 싶다면 쥬피터 노트북을 사용하면 된다. 쥬피터 노트북을 이용하면 바로 아래에 그래프 결과가 표시된다.

    쥬피터 노트북에서 사용하기 위해서는 아래와 같이 실행하며 된다.


    import plotly

    from plotly.graph_objs import Scatter, Layout


    plotly.offline.init_notebook_mode()

    plotly.offline.iplot({

        "data": [Scatter(x=[1, 2, 3, 4], y=[4, 3, 2, 1])],

        "layout": Layout(title="hello world")

    })


    바뀐 점을 알아보자. init_notebook_mode()를 이용해서 쥬피터 노트북 모드를 켜고, 그래프를 그릴 때는 iplot을 이용한다.



    혹시 위와 같이 입력했는데도 쥬피터 노트북에서 그래프가 보이지 않는다면?

    필자도 plotly를 설치하고 쥬피터 노트북에서 실행했을 때 그래프가 보이지 않았다. 결과창에 아무것도 표시가 되지 않는다. 이를 해결하기 위해서는 jupyter notebook을 업그레이드 해보자. pip install --upgrade Jupyter를 실행하면 쥬피터 노트북을 업그레이드 할 수 있다. 혹시 안 되더라도 코드에는 문제가 없다. 설치 환경이나 패키지에 문제가 있는 것이므로 재부팅을 하거나 재설치를 하는 것이 방법이 될 수 있겠다.



    오늘은 이렇게 plotly 그래프를 쥬피터 노트북에서 사용하는 방법에 대해서 알아보았다. 그래프를 그리는 방법이 다른 모듈과 달라 처음에는 어색하지만 익숙해지면 이 또한 사용하기에 편리하다. 특히 대화형 그래프를 코드 몇 줄로 그릴 수 있다는 것은 참 편리한 일이다.


    plotly에는 2가지 문법이 있다. 하나는 위와 같이 graph_objs를 이용하는 방법이 있고, 다른 하나는 plotly express 문법을 이용하는 방법이 있다. 후자가 훨씬 쉽고 편리하게 그래프를 이용할 수 있다. plotly express를 이용하는 자세한 방법은 아래 포스팅을 참조해보자.
    ( 참조: plotly express로 대화형 시각화 이미지 쉽게 만들기! )

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