Plotly 그래프 - Figure Object 이해하기

Page content

Figure Object

  • Figure Object는 크게 두가지로 구성(Attribute)이 되어 있다.
    • data : 여기에서는 그래프와 관련된 각종 정보가 담긴 데이터를 의미한다. 예를 들면, 산점도를 그린다면, X와 Y값의 정보를 확인할 수 있다. 그래프의 색상도 정의할 수 있다.
    • layout : data외의 모든 것은 layout에 속한다. 기본적으로 layout은 그래프의 Styling 요소들이 들어 있다. 예를 들면, X축, Y축의 제목, 색상 등을 변경하고자 할 때는 layout에 접근해야 한다.
  • 간단하게 Figure Object를 정의해본다.
import plotly.graph_objects as go

fig = go.Figure()
fig.show()

tutorial_02.png

  • 빈 그림에 산점도를 추가하는 그래프를 작성하도록 한다.
fig.add_scatter(x=[1, 2, 3], y=[3, 2, 1])
fig.show()

tutorial_03.png

  • 위 저장된 현재 그래프에서 막대 그래프를 추가할 수 있다.
fig.add_bar(x=[1, 2, 3], y = [3, 2, 1])
fig.show()

tutorial_04.png

Figure Object 탐색

  • 기본적으로 시중에 나와 있는 여러 Plotly 튜토리얼 관련 블로그나 책들은 다양한 그래프를 나열하는데 집중한다.
    • 막대 그래프 그리는 방법, 산점도 그리는 방법 등
  • 그러나, 실무에서는 결국 그래프를 현장에 맞게 커스텀(Customized) 해야 한다. 이 때 Figure Object를 제대로 이해하지 못하면 커스텀하게 사용할 수가 없다. 그렇다면 어떻게 Figure Object를 이해할 수 있을까?
  • 필자가 생각하기에 Plotly를 이해하는 데 있어서 가장 핵심적인 코드는 아래 코드 한줄이다.
fig.show('json')

tutorial_05.png

  • 이 코드가 중요한 이유는 각 값을 변경하면서 사용자가 원하는대로 그래프를 조절할 수 있기 때문이다.
  • 예를 들면, 아래 그래프는 제목이 없다.

tutorial_04.png

  • 마찬가지로 layout에도 관련 텍스트는 존재하지 않는다.

tutorial_06.png

  • 만약 제목을 추가하고 싶다면 아래와 같이 코드를 변경할 수 있다.
fig.layout.title = '그래프 제목'
fig.layout.xaxis.title = 'X축 제목'
fig.layout.yaxis.title = 'y축 제목'
fig.show()

tutorial_07.png

  • 그리고 다시, fig.show('json') 를 입력하고, 해당 layout에 접근하면 새롭게 제목이 추가가 된 것을 확인할 수 있다.

Screen Shot 2022-09-08 at 7.47.32 PM.png

요약

  • Plotly Figure Object의 객체는 go.Figure() 로 시작한다.
    • 각 그래프를 레이어를 추가하듯이 조작할 수 있다.
  • 그래프를 작성 후, fig.show(’json’) 를 출력하여 그래프의 구성요소를 확인할 수 있다.
  • 각 그래프의 구성요소에 접근하여 원하는대로 값을 변경하면 업데이트가 적용된다.