[혼공데분] 6주차 : Chapter 06

·2024년 8월 20일
0
post-thumbnail

6주차 진도(8/12 ~ 8/18) : Chapter 06

✅ 기본 미션

p. 344의 손코딩(맷플롯립의 컬러맵으로 산점도 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기


✅ 선택 미션

p. 356 ~ 359의 스택 영역 그래프를 그리는 과정을 정리하기

1️⃣ 한글 폰트 설치 확인 후 적용

import matplotlib.pyplot as plt

# 폰트 적용
plt.rc('font', family='NanumBarunGothic')

# 그래프 DPI 기본값 변경
plt.rcParams['figure.dpi'] = 100

2️⃣ 이용할 데이터 만들기

  • 데이터 다운로드
  • 데이터 추출 후 가공

3️⃣ y축(원하는 열)에 넣을 2차원 배열 만들기

  • 하나의 열을 2차원 배열로 바꾸는 식으로 데이터 구조 변경(피벗 테이블 만들기)
  • pivot_table() 함수
    ns_book10 = ns_book9.pivot_table(index='출판사', columns='발행년도')
     ns_book10.head()

4️⃣ x축에 넣을 리스트 만들기

  • 원하는 열을 리스트 형태로 바꾸기
    top10_pubs = top30_pubs.index[:10]
     ns_book10 = ns_book10.columns.get_level_values(1)

5️⃣ stackplot() 메서드로 스택 영역 그래프 그리기

# stackplot() 메서드로 스택 영역 그래프 그리기
fig, ax = plt.subplots(figsize=(8, 6))
ax.stackplot(year_cols, ns_book10.loc[top10_pubs].fillna(0),
             labels=top10_pubs)
ax.set_title('연도별 대출건수')
# 범례를 왼쪽 상단 표시
ax.legend(loc='upper left')
ax.set_xlim(1985, 2025)
fig.show()
  • 결과


📖 내용 정리

matplotlib으로 그래프 그리는 2가지 방식

  1. pyplot 방식
    • matplotlib.pyplot의 함수 사용 → 하나의 피겨 객체에 대한 상태 공유
    • 선 그래프 그리면 plot()title() 함수는 동일한 피겨 객체에 적용됨
      plt.plot([1, 4, 9, 16])
       plt.title('simple line graph')
       plt.show()
    • 결과
  2. 객체 지향 API 방식
    • 피겨 객체 & 서브 플롯(Axes) 객체 만들기 → 이 객체의 메서드 사용
    • fig라는 틀에 ax라는 종이 놓고 그 위에 그래프 그리는 형태
      fig, ax = plt.subplots()
       ax.plot([1, 4, 9, 16])
       ax.set_title('simple line graph')
       fig.show()
    • 결과

🥅 회고

지금까지 matplotlib을 이용해 그래프를 그리면서 왜 이런 방식으로 코드를 작성해야하는지 알지 못하고 따라 쓰기에 바빴다.
혼공데분을 쭉 배우면서 변수와 객체 하나하나를 왜 사용하는지, 무슨 역할을 하는지, 어디에 사용하는지 등등을 한번에 배울 수 있었던 좋은 기회였다.
내 머릿속 데이터 분석 능력이라는 유리병에 당장의 기능 구현을 위한 큰 돌멩이를 넣기에 바빴다면,
이번 혼공 학습단을 통해 입자가 작은 모래, 흙들을 채워넣으면서 기반을 더 튼튼히 다질 수 있는 기회였다고 생각한다.
마지막까지 지각을 안하고 제출할 수 있었다면 좋겠지만 그러지 못해서 많이 아쉽다.
이 책을 통해 배운 여러 기법들을 내 프로젝트에 적극적으로 사용할 수 있도록 꾸준히 복습해야 겠다.

0개의 댓글