파이썬(Python)/골프용품 수출입

[무역|6|Plotly] 골프용품 수출입 - go.Scatter() 테마사용 x축, y축 꾸미기

JJ Goh[Certified customs broker] 2020. 7. 9. 06:00

[무역|6|Plotly] 골프용품 수출입 - go.Scatter() 테마사용 x축, y축 꾸미기 

 
 
이번 포스팅에서는 go.Scatter()에 의해 추가되는 line plot trace가 표현되는 canvas 자체에 대한 꾸미기에 대해 알아 보겠습니다.
 
 

fig.update_layout()

 
 
 update_layout() 메소드를 통해서 add_trace()로 추가된 특정 형태의 plot외 기타 부분의 canvas에 관련한 layout변경을 처리할 수 있습니다. 즉, 그래프 그 자체는 go.Scatter()와 같이, 그래프를 그려주는 메인함수에 의해 그 표현방식을 변경하면 되고, 그래프 그 자체 외의 figure 외형 layout의 수정은 update_layout()으로 설정을 변경할 수 있습니다.
  
 그럼 몇가지 주요한 layout 변경에 관련한 인자들을 공식문서와 함께 알아보고, 그 변경이 반영된 내용을 한번 훑어 보겠습니다. 워낙 많은 인자들이 있기 때문에 전부 소개는 불가능하여, 자주 쓸 수 밖에 없는 것들 위주로 지면이 할애되는 만큼만 기술해 보겠습니다.
 
 

 (1) fig.update_layout(template)

 
 테마와 템플릿에 관한 plotly공식문서 링크를 먼저 걸어 두겠습니다.
 
 

Theming and templates in Python

 
 

 공식문서에서는 built-in 테마를 소개하고 있는데요. 현존하는 built-in 테마에 관련한 정보를 보고 싶으신 경우에는 아래와 같이 모듈을 import하고 그 내용을 살펴 보실 수 있습니다. 

import plotly.io as pio pio.templates

 테마는 수시로 추가, 변경, 삭제 될 수 있는 것이니, 이 명령라인을 통해 테마에 관련한 정보를 확인하시면 좀 더 다양하게 built-in 테마를 활용 가능하시겠습니다. 공식문서에 언급된 테마로는 다음과 같은 것들이 있습니다.

 

        ['ggplot2', 'seaborn', 'simple_white', 'plotly',          'plotly_white', 'plotly_dark', 'presentation', 'xgridoff',          'ygridoff', 'gridon', 'none']

 

 제가 골프용품 수출입실적 통계시 사용했던 테마는 'plotly_white'였고, 지난 시간 포스팅에 의한 현재까지의 결과물은 아래와 같습니다.

 

 

 

그럼 이제 template에 다른 값을 주어 그 형태가 어떻게 변하는지 알아 보겠습니다.

 template에 'plotly_dark'를 설정해 보겠습니다.

fig.update_layout(template="plotly_dark", margin=dict(r=10, t=25, b=40, l=60))

 

 검정색 배경으로 전환된 것이 확인됩니다.

 

 이 공식문서에서는 default theme의 설정과 변경 방법에 대한 방법도 상세하게 설명하고 있습니다. 특정테마를 고정해서 자주 사용하실 예정이시라면 default theme를 설정해 놓고 사용하시는 것이 좋은 방법이 되겠습니다.

 

 

 

 (2) fig.update_layout(margin)

 dictionary형으로 상하좌우 마진값을 넘겨주어 그 여백 조정을 할 수 있겠습니다.

 r은 right, t는 top, b는 bottom, l은 left가 되겠네요.

 본래 마진보다 좌우 여백을 좀 더 넓혀 보겠습니다.

fig.update_layout(template="plotly_dark", margin=dict(r=250, t=25, b=40, l=250))

 

그래프의 좌우로 여백이 확연히 늘어난 것을 보실 수 있습니다.

 

 

 (3) fig.update_layout(title)

 title은 그래프의 제목을 설정합니다. dictionary형으로 자료값을 제시하면 그에 맞게 형태를 변경합니다.

 template을 'simple_white'로 바꾸고, margin top을 50으로 늘린 후 title에 dictionary값으로 제목값, font의 크기, 제목의 위치를 결정하기 위한 x축 참조범위 및 참조된 x축의 어느 위치에 놓을 것인가에 대한 설정을 줘 보겠습니다.

fig.update_layout(template='simple_white', margin=dict(r=250, t=50, b=40, l=250), 
                  title=dict(text="골프공 수출입실적",font=dict(size=20),xref='paper',xanchor='auto'))

 

제목이 나타난 것이 확인됩니다.

 

 

이 외에도 테마의 생성 및 테마의 병합사용 등 다양한 경우의 사용방법을 공식문서에서 소개하고 있습니다. 잘 참조하신다면 원하시는 형태로 얼마든지 변경하실 수 있으시겠습니다.

 

 

 

 

 

 

fig.update_xaxes() 와 fig.update_yaxes()

 
 
 update_xaxes는 x축을, update_yaxes는 y축을 꾸밀 때 사용됩니다. 그런데, xaxes나 yaxes는 여러개의 subplot으로 구성되는 figure를 만들었을 때, 특정위치의 subplot을 지정해 x축, y축에 대한 설정변경을 할 때 사용하기 적합한 것으로 안내하고 있습니다. 만약, 그래프가 1개로 구성되어 make_subplots()자체를 쓰지 않고 생성된 figure라면 xaxis와 yaxis를 사용하시면 더 적합하겠습니다. 하지만, 기능상으로는 1개 figure만 쓰더라도 기능적으로 문제되지는 않는 것으로 보입니다.
 
 
축꾸미기에 관련한 공식 참조문서 링크를 아래 걸어 두겠습니다.
 
 
 

 (1) fig.update_xaxes(showgrid, gridcolor, gridwidth)

   showgrid는 x축을 기반한 격자눈금선. 즉, 세로방향의 격자눈금선을 표시할지 여부를 설정합니다. bool형으로 True값을 주면 격자눈금선이 표시됩니다.
  gridcolor는 격자눈금선의 색깔을 지정합니다.
  gridwidth는 격자눈금선의 두께를 지정합니다.
 x축의 grid는 나타내고, y축의 grid는 표시하지 않아 보겠습니다. 그리고 눈금선의 형태를 조금 변경해 보겠습니다. 
fig.update_xaxes(showgrid=True, gridwidth=2, gridcolor='LightGrey')
fig.update_yaxes(showgrid=False, gridwidth=1, gridcolor='LightPink', zeroline=True, zerolinewidth=2, zerolinecolor='grey')

 

 

(2) fig.update_yaxes(zeroline, zerolinewidth, zerolinecolor)

 

 zeroline은 y축의 기준선인 '0' 값 line을 표시할지 여부를 결정합니다.

 zerolinewidth는 해당선의 두께를 정합니다.

 zerolinecolor는 해당선의 색깔을 정합니다.

fig.update_yaxes(showgrid=False, gridwidth=1, gridcolor='LightPink', 
                 zeroline=True, zerolinewidth=10, zerolinecolor='black')

 

 

(3) fig.update_yaxes(row, col)

 row와 col은 make_subplots()에 의해 다수의 subplot이 생성되었을 때, 그 중 특정위치의 subplot에 대해서만 축값 변경을 하고 싶을 때 쓰게 됩니다. 4 X 5로 subplot을 총 20개를 만들었다면 row=3, col=2를 주면 행으로 3번째, 열로 2번째에 해당하는 subplot을 지정하여 해당 subplot의 축값만 변경할 수 있습니다. 시연결과는 생략하도록 하겠습니다. 

 

 

 

 이 외에도 다양한 인자들이 있는데요. 모두 기술하기가 어려우니, 다른 주제를 통해 계속해서 소개해 나갈 수 있도록 하겠습니다.

 

 

 그럼 다음 포스팅으로 다시 뵙겠습니다.

 

 

 

NPU(엔피유) 관세사무소

대표관세사 고장주

Tel) 031-986-7190

E-mail) sales@npucus.com

[NPU관세사무소 프로모션 페이지] https://www.tradenpu.com/npu_cus/

[무역비지니스 인텔리전스 서비스 | TradeNPU] https://www.tradenpu.com

[파이썬 실용 예제. 무역과 공공데이터] https://pdatinmylife.tistory.com

Certified Customs Broker JangJu Goh

Executive Customs Broker @ NPU Customs Consulting

CEO @ JG TradePlus

sales@npucus.com

Trade Compliance / Customs clearance management at foreign company

Working experience of Air export freight forwarding

Data Visualization / Independent development of business automation application – copyright of JGPO_Manager, JG Data Center, AutoCC and etc.

B2B consignment & direct export/import, B2C Overseas Buying Office consulting

Alibaba.com B2B trade / taobao B2C trade / Amazon.com global selling etc. Online trade regulation consulting.

Import license / Quarantine

English communication available

[TradeNPU for partnership proposal - JGTP] https://www.tradenpu.com/jgtp/

반응형