파이썬(Python)/향수 수출입 Plotly Pie Chart

[무역|8|Plotly] 향수 수출입 - Pie Chart 기본, 색변경, 표현범위조정

JJ Goh[Certified customs broker] 2020. 7. 14. 14:30

[무역|8|Plotly] 향수 수출입 - Pie Chart 기본, 색변경, 표현범위조정

 

 

 안녕하세요. 

 이번에는 향수(Perfumes and Scents)의 수출입 실적을 살펴 보겠습니다.

 

 이번 주제를 통해서는 plotly를 통해 구현하는 Pie chart의 사용법에 대해 다뤄보도록 하겠습니다.

 간단한 주제이고, xml parsing이나 파일에 의한 수출입실적 data mining과 refining도 모두 다루었으니, 곧바로 pie chart 이용법으로 넘어가도록 하겠습니다.

 

 

Pie chart

 

 

plotly pie chart의 공식 문서 링크를 아래 걸어 두었습니다. 

Customizing을 위해 공식문서 확인이 필요하시면 아래 링크를 이용해 주시면 되겠습니다.

 

 

Pie Charts in Python

 

 

 Pie chart가 무엇인지는 다들 이미 알고 계실텐데요. 동그란 원형 모양으로 구성항목간 상대적인 비율을 확인해 볼 수 있습니다. Pie chart의 변형형태로 Donut chart가 있는데요. 가운데 구멍이 뚫린 원형 모양의 차트입니다. 그리고 plotly는 무엇보다 dynamic display를 지향하기 때문에, 클릭하면 반응하는 반응형의 차트형태를 제공하는데요. Sunburst charts라고 용어가 정의된 이 차트는 클릭시 하위 그룹이 break-down되거나 다시 원형으로 돌아 옵니다. 

 

 과학적 목적이 아닌 일상 업무 선에서 사용하는 정도에서는 막대그래프, 선그래프, 원형 그래프 이 3가지 정도가 주로 사용되기 때문에 원형 그래프 사용법까지 익혀 두시면 고차원은 아닐지라도, 보고서 작성 자동화 정도는 충분히 가능하실 것입니다.

 

 

 그럼 xml parsing을 통해 준비된 향수 세번(3303.00-1000)의 수출입실적을 가지고 pie chart를 그려 보겠습니다.

 

 

plotly.express   기본 Pie chart

 
 
 'd7'이라는 이름을 가진 DataFrame이 준비되었습니다. 이제 이 DataFrame으로 완전히 기본 수준의 pie chart를 그려 보겠습니다.
import plotly.offline
import plotly.express as px
fig = px.pie(d7, values='impDlr', names='statCd', title='국가별 수입금액')
plotly.offline.plot(fig)

 

 모듈을 import한 앞 2개 line 빼고 pie chart를 그리기 위한 코드 라인은 세번째 코드 라인 한 줄이 전부 입니다.

 DataFrame만 준비되면 어떤 값을 기준으로 그릴 것인지 parameter를 주는 것만으로 기본형의 그래프가 완성됩니다.

 

 게다가, matplotlib에 비해서 일일이 설정해 주지 않아도, plotly.express의 built-in code에 의해 곧바로 활용가능한 수준의 시각화 결과물이 나옵니다.

 결과물을 보시겠습니다.

 

 

 

 

 

 

 Hovering data를 통해 구체수치도 확인 가능합니다. 

 게다가 범례의 국가명을 클릭하면 해당 국가를 표시할지 여부를 toggle할 수 있습니다.

 'FR' 프랑스의 범례명을 클릭하여 프랑스 집계값은 제외해 보았습니다.

 

 

 

 

 

프랑스를 제외한 나머지국가를 기준으로 수입시장점유율도 재계산되어 표시된 것이 확인됩니다.

 

 plotly나 matplotlib과 같은 파이썬 오픈소스 라이브러리를 통한 시각화가 엑셀의 그것과는 비교되지 않을만큼 활용성이 높다고 단언할 수 있는 부분입니다. 심지어, MS 엑셀은 새로운 버전이 나오면 강매 당하듯 라이선스 구매가 필요합니다. 하지만, 파이썬 오픈소스 라이브러리들은 모두 무료입니다. 적극적으로 활용해야 할 이유가 됩니다.

 

 

 

 

 

 

plotly.express   Pie chart 색깔 변경

 
 
 이번에는 이 기본차트의 색상을 변경해 보도록 하겠습니다.
 공식문서상의 색상설정값과 동일하게 세팅해 보겠습니다.
 
fig = px.pie(d7, values='impDlr', names='statCd', title='국가별 수입금액',
             color_discrete_sequence=px.colors.sequential.RdBu)

 

 

color_discrete_sequence라는 인자를 이용해서 plotly가 제공하는 설정값을 주면 해당 설정에 따라 색상을 변경해 줍니다. 

꼭 설정값이 아니더라도, color코드를 color_discrete_sequence=["red", "green", "blue", "goldenrod", "magenta"] 처럼 리스트 형태로 제공해 주면 원하는 색을 배정할 수 있습니다.

 

 

 

plotly.express    Pie chart 표현범위 조정하기 (pandas)

 

 

향수의 수출입실적을 가지고 기본 pie chart를 그리면 표현된 국가수가 80여개에 달합니다. 상위 10개 정도만 표현하기 위해 나머지 70개에 대해 범례를 모두 토글하고 있는 것은 낭비이기 때문에 그 표현항목수를 줄이기 위해 코드를 좀 추가해 보겠습니다.

 

d8 = d7.loc[d7['impDlr']>100,:]
fig = px.pie(d8, values='impDlr', names='statCd', title='국가별 수입금액',
             color_discrete_sequence=px.colors.sequential.RdBu)

 

pandas loc[]함수를 이용하여 impDlr series. 즉, 수입금액이 100 thousand USD가 넘는 국가만 추출하여 d8이라는 DataFrame을 새로 생성하였습니다. 이제 d8으로 표현해 보겠습니다.

 

 

 

 

11개국이 표현되었는데요. 기존보다는 그래프가 더 정갈해 졌습니다.

 

 

계속해서 pie chart에 라벨표시하는 방법은 다음 포스팅에서 이어가도록 하겠습니다.

 

즐거운 하루 되세요!

 

 

 

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/

반응형