혼공학습단(한빛미디어)
[혼공단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')