시가총액 데이터 시각화하기
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은 각각 너비, 높이, 배율을 의미합니다
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 네이버쇼핑 연관 키워드 검색하기 - 네이버 쇼핑 검색하기 (0) | 2026.03.17 |
|---|---|
| 네이버쇼핑 연관 키워드 검색하기 - 파이썬 패키지 준비하기 (0) | 2026.03.14 |
| 시가총액 상위 종목 구하기 (0) | 2026.03.08 |
| 페이지 이동 자동화하기 - 전체 데이터 수집하기 (0) | 2026.03.05 |
| 페이지 이동 자동화하기 - 총 페이지 개수 확인하기 (1) | 2026.03.02 |