프로그래밍 언어/Python

시가총액 데이터 시각화하기

· 코딩마이데이

plotly 패키지를 사용하여 상위 50% 종목에 대한 시가총액  데이터를 트리맵으로 시각화해봅시다.

 

비주얼 스튜디오 코드에서 새로운 파일을 만들고, 파일명을 'step_3_2.py'로 저장합니다. 다음 코드를 입력한 뒤 대화형 창에서 실행하면 'output' 폴더에 'step_3_2.png' 파일이 생성됩니다. 이 파일에는 상위 50%에 해당하는 21개 종목의 시가총액이 트리맵으로 시각화되어 있습니다.

 

from pathlib import Path
import pandas as pd
import plotly.express as px # 03
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_3_1 import OUT_3_1

df_raw = pd.read_csv(OUT_3_1)
fig = px.treemap( # 08
    df_raw, # 기준 데이터
    path=["종목명"], # '종목명' 기준으로 데이터 분류 # 10
    values="조단위", # '조단위' 기준으로 종목별 면전 계산 # 11
)
fig.update_traces( # 13
    marker=dict( # 14
        cornerradius=5, # 모서리 둥글게
        colorscale="Plasma", # 색상
        pad=dict(t=10, r=10, b=10, l=10) # 트리맵 여백 지정
    ), # 18
    texttemplate="<b>%{label}</b><br>%{value:,.0f}조원", # 종목명, 시가총약 표시 # 19
    textfont_size=30, # 폰트 크기 # 20
)
fig.update_layout(margin=dict(t = 0, r = 0, b = 0, l = 0)) # 이미지 여백 지정 # 22
img_path = OUT_DIR / f"{Path(__file__).stem}.png" # 이미지 경로 
fig.write_image(img_path, width = 1000, height = 900, scale = 2) # 이미지 파일로 저장 # 24

 

실행결과

 

03 plotly 패키지의 express 모듈을 불러옵니다.

08 plotly 패키지의 함수 treemap()을 호출하여 트리맵을 생성합니다.

10 매개변수 path에 ['종목명']을 전달하여 '종목명' 열을 기준으로 데이터를 분류합니다.

11 매개변수 values에 트리맵 면적 계산에 사용할 '조단위' 열을 전달합니다.

13 Figure 객체의 함수 update_traces()를 호출하여 트리맵 시각화 옵션을 설정합니다.

14~18 매개변수 marker를 사용하여 모서리 지름, 색상, 여백 등을 설정합니다.

19 매개변수 texttemplate를 사용하여 종목별로 출력할 텍스트 형식을 설정합니다. '<b></b>' 태그는 굵은 글씨체 적용, 'br' 태그는 줄바꿈, '%{label}'은 '종목명', '%{value}는 '조단위' 열을 의미합니다.

20 매개변수 textfont_size에 폰트 크기를 설정합니다.

22 Figure 객체의 함수 update_layout()을 사용하여 이미지 여백을 지정합니다. 매개변수 t, r, b, l은 각각 위, 오른쪽, 아래, 왼쪽 여백을 의미합니다.

24 함수 write_image()을 사용하여 이미지를 저장합니다. 매개변수 width, height, scale은 각각 너비, 높이, 배율을 의미합니다