혼공학습단(한빛미디어)

[혼공단14기] 혼자 만들면서 공부하는 파이썬 - 1주차

#FF0000 2025. 7. 5. 00:05

 

혼자 만들면서 공부하는 파이썬  커리큘럼

 

 

 

혼자 만들면서 공부하는 파이썬 - 예스24

“파이썬을 배워서 어디에 활용할 수 있을지 궁금했나요?”나의 신용카드 내역 분석, 우리 아파트 실거래가 시각화해보기, 맛집 지도 웹 앱 만들기 등 생활 속 15가지 파이썬 프로젝트를 직접 완

www.yes24.com

https://www.yes24.com/product/goods/142258696

 

 


 

1주차(25.6.30 - 07.06) Chapter 01 폴더 크기 측정 프로그램

기본미션

▶ Ch.01(01-1, 01-2) 폴더 크기 측정 결과 화면 캡처하기

 

p.59) step_2_3 측정할 폴더 목록 저장하기

 

p.61) step_2_4  폴더 크기 측정하기

 

 

추가미션

Ch.01(01-3) 폴더 크기 측정 프로그램 시각화(차트) 결과 화면 캡처하기 

p.68) step_3_3 보기 좋은 차트 만들기

 

 

+ 클로드를 활용하여 차트 꾸미기(기존 코드에 차트 색상 및 스타일 추가)

 

from pathlib import Path

import matplotlib.pyplot as plt
import numpy as np

from step_2_1 import OUT_DIR  # 이전에 작성한 모듈을 불러옵니다.
from step_3_1 import load_plot_data

plot_data = load_plot_data()
log_size = np.log(plot_data["size"])

# 색상 팔레트 설정
colors = plt.cm.viridis(np.linspace(0, 1, len(plot_data["stem"])))  # viridis 컬러맵 사용
# 또는 다른 컬러맵 옵션들:
# colors = plt.cm.plasma(np.linspace(0, 1, len(plot_data["stem"])))
# colors = plt.cm.Set3(np.linspace(0, 1, len(plot_data["stem"])))

fig, ax = plt.subplots(figsize=(16, 9), dpi=100)

# 막대 차트에 색상과 스타일 적용
bars = ax.barh(plot_data["stem"], log_size, 
               color=colors,
               edgecolor='white',  # 막대 테두리 색상
               linewidth=1.5,     # 테두리 두께
               alpha=0.8)         # 투명도

# 그리드 스타일 개선
ax.grid(True, axis="x", alpha=0.3, linestyle='--', color='gray')

# 배경색 설정
ax.set_facecolor('#f8f9fa')  # 연한 회색 배경
fig.patch.set_facecolor('white')  # 전체 배경 흰색

# 축 스타일 개선
ax.tick_params(labelbottom=False, length=0, labelsize=30, colors='#2c3e50')
ax.spines['top'].set_visible(False)     # 상단 테두리 제거
ax.spines['right'].set_visible(False)   # 우측 테두리 제거
ax.spines['bottom'].set_color('#bdc3c7')  # 하단 테두리 색상
ax.spines['left'].set_color('#bdc3c7')    # 좌측 테두리 색상

# 제목 추가 (선택사항)
ax.set_title('File Size Distribution (Log Scale)', 
             fontsize=24, fontweight='bold', color='#2c3e50', pad=20)

# x축 라벨 추가 (선택사항)
ax.set_xlabel('Log(Size)', fontsize=16, color='#2c3e50', fontweight='bold')

# 막대에 그라데이션 효과 추가 (선택사항)
for i, bar in enumerate(bars):
    # 각 막대에 미세한 그라데이션 효과
    bar.set_alpha(0.7 + 0.3 * (i / len(bars)))

fig.set_layout_engine("tight")  # 차트 여백
fig.savefig(OUT_DIR / f"{Path(__file__).stem}.png", 
            facecolor='white', edgecolor='none', bbox_inches='tight')