[무역|8|Plotly] 향수 수출입 - Pie Chart 라벨표시, Donut chart로 변환, 특정섹터 띄우기
지난 포스팅에 이어 pie chart의 다양한 표현 옵션들을 살펴 보겠습니다.
plotly.express pie chart 라벨 표시하기
이번에는 시인성을 높이기 위해 범례가 아닌 차트상에 국가코드를 표기해 보도록 하겠습니다.
d8 = d7.loc[d7['impDlr']>100,:]
fig = px.pie(d8, values='impDlr', names='statCd', title='국가별 수입금액',
color_discrete_sequence=px.colors.sequential.RdBu)
fig.update_traces(textposition='inside', textinfo='percent+label')
마지막 라인에 추가되어진 fig.update_traces()로 라벨을 표시하게 됩니다. textpostion을 inside로 하였고, textinfo는 percent+label로 하였기 때문에, 해당 값은 표의 내부에 국가명과 percentage가 표출되게 됩니다.
결과물은 아래와 같습니다.
plotly.express pie chart 크기 조정
이번에는 pie chart의 크기를 조정해 보겠습니다.
d8 = d7.loc[d7['impDlr']>100,:]
fig = px.pie(d8, values='impDlr', names='statCd', title='국가별 수입금액',
color_discrete_sequence=px.colors.sequential.RdBu, width=800, height=800)
fig.update_traces(textposition='inside', textinfo='percent+label')
plotly.offline.plot(fig)
px.pie()의 parameter로 width와 height값을 주면 가로와 세로폭이 조정됩니다.
가로, 세로폭을 동일하게 800으로 줄이고 스크린샷을 떠봤습니다. 크기가 줄어든 만큼 동일한 업로드공간에 더 꽉차게 이미지가 떠서 시인성이 더욱 좋아진 것이 확인됩니다.
plotly.express pie chart를 Donut chart로 바꾸기
d8 = d7.loc[d7['impDlr']>100,:]
fig = px.pie(d8, values='impDlr', names='statCd', title='국가별 수입금액',
color_discrete_sequence=px.colors.sequential.RdBu, width=800, height=800, hole=0.8)
fig.update_traces(textposition='inside', textinfo='percent+label')
plotly.offline.plot(fig)
hole값으로 저는 0.8을 주었습니다.
이 값을 픽셀단위로 오해하셔서 1 이상의 값을 주시면 안됩니다.
이 값은 구멍의 외곽대비 비율로 이해하시면 되겠습니다.
따라서, 지름이 외곽원형의 지름 대비 80% 수준의 구멍을 뚫게 됩니다.
애석하게도 plotly.express의 px.pie()에는 pull인자가 없습니다. pull인자는 특정 섹터를 pie chart또는 donut chart와 분리하여 떠서 나오게 하는 효과인데요. 공식문서상으로도 px.pie로는 구현이 안됩니다. 이런 효과를 원하신다면 plotly의 graphic_objects(as 'go')로 구현하는 방법이 나옵니다. 계속해서 같은 값을 가지고 plotly의 go로 해당 방법을 살펴 보겠습니다.
plotly.graphic_objects pie chart or Donut chart의 특정 섹터 띄우기
d8 = d7.loc[d7['impDlr']>100,:]
fig = go.Figure(data=[go.Pie(labels=d8['statCd'], values=d8['impDlr'], pull=[0,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9],
title='국가별 수입금액', textposition='inside', textinfo='percent+label', hole=0.8)])
plotly.offline.plot(fig)
px가 아닌 go를 사용하기 때문에 코드라인이 전체적으로 바뀌었습니다. 하지만, go의 장점은 customizing이 px에 비해 더 자유롭다는 것입니다. px는 간편성을 go는 높은 자유도라는 특징으로 설명할 수 있겠습니다.
최대한 px로 그렸던 마지막 형태에서 표현을 극대화하기 위해 pull이라는 인자를 사용해 극대화를 하면서 띄우는 수준을 단계형태로 가져가 보았습니다. 안내문에 따르면 pull인자값을 주실 때엔 tuple이나 dictionary 및 list의 형태로도 값을 줄 수 있습니다. dictionary형태로 주면 특정 라벨값에 대한 값을 콕 집어 설정 변경할 수 있기 때문에 표현항목수가 많지 않다면 dictionary로 설정하시는게 정확한 설정에 좋겠습니다.
이 외에도 Sunburst chart나 Subplots 만드는 방법 등이 공식문서상 소개 되어 있으나, 이번에 준비한 주제로 이 내용을 표현하기에는 DataFrame이 적정하지 않아 다른 주제를 통해 포스팅하도록 하겠습니다.
부족한 글 읽어 주셔서 감사합니다.
오늘도 즐거운 하루 되세요!
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) > 향수 수출입 Plotly Pie Chart' 카테고리의 다른 글
[무역|8|Plotly] 향수 수출입 - Pie Chart 기본, 색변경, 표현범위조정 (0) | 2020.07.14 |
---|