[무역|6|Plotly] 골프용품 수출입 - go.Scatter() line plot 꾸미기
이번에는 plotly 공식문서를 참조하여 line plot을 꾸미기 위한 go.Scatter() 에서 사용 가능한 인자들에 대해 알아 보도록 하겠습니다.
파이참(Pycharm)에서 참조문서 찾기
보통 함수에 사용되는 인자들은 해당 라이브러리를 개발한 개발자가 별도의 참조문서파일을 함께 제공합니다. 공식문서를 제공하는 사이트를 찾아들어가도 되지만 간단하게 바로 참조를 원하는 경우에는 파이참의 'Go To' 기능을 이용하여 해당 함수에 대한 사용법 색인으로 찾아들어 가는 방법도 유용합니다.
일단, 파이참을 이용하시면서 함수에서 사용 가능한 인자들에 무엇이 있는지 보고 싶으시다면 해당 함수의 괄호안에 커서를 놓으시고 단축키 'Ctrl + P' 를 눌러보시기 바랍니다.
해당 함수에 대한 사용 가능한 argument들이 전부 나열되어 나옵니다. 통상 특정 함수를 사용하게 되면 해당 함수에서 제공하는 기능에 맞춘 인자명을 사용하기 때문에 인자명만 봐도 그 인자의 용도를 유추할 수 있는 경우가 대부분입니다.
위 이미지상는 go.Scatter()에서 사용 가능한 인자 목록을 조회한 것인데, hovertext 같은 건 plot상에 데이터 값을 마우스 포인터를 갖다 대었을 때 hovering 시킬지 여부를 보는 것이겠다는 추정이 가능하겠구요. marker나 line같은 것들은 plot의 점이나 선의 모양을 modification할 때 쓰는 인자일 것이라는 추정이 가능할 것입니다.
이 방법이 간단하게 인지가능한 인자값 용법을 찾는 방법의 하나입니다.
그런데, 인자의 이름만으로는 그 용도를 알 수 없거나, 용도는 추정되는데, 구체적 사용법은 알기 힘든 인자들도 있습니다. 그러한 인자들은 개발자의 참조문서파일을 찾아들어가보는 것이 좋은데요. 아래 이미지와 같이 인자용법이 궁금한 함수에 커서를 놓고 우클릭하시면 드롭다운리스트에 'Go To' 카테고리가 나옵니다. 거기서 다시, 'Declaration or Usages'가 나오는데요. 클릭하시면 해당 메소드를 정의한 파일로 이동됩니다. 단축키로는 'Ctrl + B'로 되어 있네요.
하여 파이참 상단에 scatter.py라는 파일이 열릴텐데요. go.Scatter()가 정의된 py 파일로 이동이 되는 것입니다.
아래와 같은 이미지가 나오게 됩니다.
사용자는 이와 같은 방법으로 개발자가 남겨놓은 주석을 참조하여 인자값의 용법을 확인할 수 있게 됩니다.
여기서 'Ctrl + F'를 누르시면 특정 문자열을 찾을 수 있는 command line이 활성화가 됩니다. line인자 사용법이 궁금하기 때문에, 저는 검색어로 'def line'이라고 넣어 보겠습니다. 아래 이미지와 같이 찾는 값이 검색되어 나옵니다. 그러면 녹색 글씨의 주석이 보이시지요. 해당 부분이 개발자가 기록한 구체적 line 인자의 용법입니다. 특히, line인자의 경우 dictionary형으로 값을 전달하면, line이 모양을 그에 맞게 구성하게 됩니다. dict(color = 'black', dash = 'dot') 형태로 값을 전달하면 검정색의 점선을 그리게 되는 것입니다. 가장 정석으로 함수 인자의 용법을 확인하는 방법이 되겠습니다.
공식사이트에서 참조문서 찾기
두번째 방법으로는 공식사이트에서 참조문서를 찾는 방법입니다.
plotly의 Pythong graphing libararies 의 링크는 아래와 같습니다.
Plotly Python Open Source Graphing Library
여기서, 다시 Python Figure Reference 를 찾아 들어가시면 plotly가 제공하는 함수에 관련한 참조값들을 찾아 보실 수 있습니다. 공식사이트 문서를 통해서도 용법을 찾으실 수 있는데요. 공식사이트가 영문이라는 점에서 부담이 되실 수 있겠지만 Chrome 같은 경우 영문을 한역해주는 기능도 있기 때문에, 그 용법을 찾아서 이해하시는데 큰 어려움은 없으시리라 생각됩니다. IT 비전공자인 저도 궁금한 부분은 이러한 공식문서 찾기를 통해 모두 해결하면서 진행하는데 무리가 없기 때문에 충분히 이해하시면서 진행하실 수 있으시리라 생각 됩니다.
go.Scatter() 주요 인자 사용법 살펴보기
go.Scatter()에 정의된 주요한 인자 몇가지를 살펴 보겠습니다. 살펴보기 전에, 해당 인자에 값을 적용하기 전과 후 비교를 위해 인자 적용 전의 그래프를 먼저 올려 놓겠습니다. 이 바로 아래 이미지와 제가 각 인자 설명 후 올려놓은 이미지를 비교해 보시면 해당 인자가 어떻게 그래프에 적용되게 되는지 이해에 도움이 되시리라 생각됩니다.
fig.add_trace(go.Scatter(y=y1, x=z1, name="수출실적", line=dict(dash='longdash', color='blue')))
fig.add_trace(go.Scatter(y=y2, x=z1, name="수입실적", line=dict(dash='dashdot', color='red')))
fig.add_trace(go.Scatter(y=y3, x=z1, name="무역수지", line= dict(dash='solid', shape='spline', color='green')))
(1) name
이 인자는 plotly의 graph canvas에 추가되는 plot (그래프. plotly에서는 trace라고 표현)의 이름을 정의 합니다. 정의된 이름은 범례 및 hovering data에서 해당 trace의 이름으로 표현됩니다.
(2) fill
이 인자는 해당 line에 대해 지정한 범위까지 색을 채우는데 사용됩니다.
예를 들어, 수출실적 trace에 'tozeroy'를 넣어 주면, 그 값 이름에서 알 수 있듯이 y축 방향으로 0의 값까지 line에 색을 채우게 됩니다. 개발자 주석상으로는 'tozerox', 'tonexty', 'tonextx', tonext', 'toself' 등의 값이 설명되어 있습니다. 각각은 직접 설정해 보시고 그 용법을 터득하시면 되겠습니다.
fig.add_trace(go.Scatter(y=y1, x=z1, name="수출실적", line=dict(dash='longdash', color='blue'), fill='tozeroy'))
(3) line
plot의 line꾸미기를 위해 사용됩니다. dictionary형태로 자료를 제공합니다.
dictionary에 사용될 수 있는 인자에는 다음과 같은 것이 있습니다.
a. color : 선색을 지정합니다.
b. dash : 점선의 형태로 표시할지 여부와 점선의 길이를 지정할 수 있습니다.
c. shape : 'spline'이라는 값을 설정하면 데이터의 점과 점 사이의 선이 기존 직선이 아닌 interpolation(보간)이 적용된 완곡한 형태의 선으로 그려지게 됩니다.
d. smoothing : 'spline'을 사용하는 경우 smoothing에 준 값에 따라, 그 완곡함의 수준이 증가 감소 됩니다. 0에 가까운 값일수록 interpolation값이 적용되지 않은 일반 직선형 형상을 띄게 됩니다.
e. width : 선의 굵기를 지정합니다.
'수입실적' trace에 'longdashdot'과 spline을 적용해 보고, '무역수지' trace에 spline과 smoothing값을 적용해 보겠습니다.
fig.add_trace(go.Scatter(y=y2, x=z1, name="수입실적", line=dict(dash='longdashdot', shape='spline', color='red')))
fig.add_trace(go.Scatter(y=y3, x=z1, name="무역수지", line= dict(dash='solid', shape='spline', smoothing = 1, color='green')))
(4) opacity
해당 trace의 투명도를 설정합니다. 값은 0에서 1 사이의 실수값으로 주어야 합니다.
'무역수지' trace에 투명도 0.2 값을 줘보면 무역수지 녹색라인이 매우 투명해 지는 것이 확인됩니다.
fig.add_trace(go.Scatter(y=y3, x=z1, name="무역수지", opacity=0.2,
line= dict(dash='solid', shape='spline', smoothing = 1, color='green')))
이외에도 다양한 인자들이 있는데요. 직접 적용해 보시면서 변화를 확인해 보시면 그 사용방법을 쉽게 터득하실 수 있으실 것입니다.
기타 인자들의 용법이 궁금하신 분들께서는 댓글 남겨 주세요.
다음 포스팅에서는 update_layout()의 사용가능한 주요 인자들 몇가지를 살펴 보도록 하겠습니다.
즐거운 하루 되세요.
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/
'파이썬(Python) > 골프용품 수출입' 카테고리의 다른 글
[무역|6|Plotly] 골프용품 수출입 - go.Scatter() 테마사용 x축, y축 꾸미기 (0) | 2020.07.09 |
---|---|
[무역|6|Plotly] 골프용품 수출입 - go.Scatter() line plot 그리기 (0) | 2020.07.07 |