혼공분석 6주 차 학습
# | 진도 | 기본 숙제 | 추가 숙제 |
6주차 (08. 11 ~ 08. 17) |
Chapter 06 | p.344 그래프 출력 | p.356 ~ 359 그래프 그리는 과정 정리 |
기본 숙제
객체지향 API 방식
- 명시적으로 피겨 객체와 서브플롯 객체를 만들고 이 객체의 메서드를 사용하여 그래프를 그린다.
- 복잡한 그래프를 그리는 경우에는 객체지향 방식을 사용하는 것이 좋다.
- 하나의 피겨에 여러 개의 서브플롯을 추가하는 경우
산점도 그리기
- linewidths 매개변수
- 마커 테두리 선의 두께를 결정한다.
- 기본값 : 1.5
- edgecolors 매개변수
- 마커 테두리의 색을 결정한다.
- 기본값 : 'face'
- alpha 매개변수
- 마커의 투명도를 결정한다.
- s 매개변수
- 마커의 크기를 지정한다.
- 기본값 : 6
- c 매개변수
- 산점도의 색을 지정한다.
- cmap 매개변수
- 컬러맵을 지정한다.
- 기본값 : 'viridis'
fig, ax = plt.subplots(figsize=(10, 8))
sc = ax.scatter(ns_book8['발행년도'], ns_book8['출판사'],
linewidths=0.5, edgecolors='k', alpha=0.3,
s=ns_book8['대출건수']**1.3, c=ns_book8['대출건수'], cmap='jet')
ax.set_title('출판사별 발행 도서')
fig.colorbar(sc)
fig.show()
추가 숙제
스택 영역 그래프
- 하나의 선 그래프 위에 다른 선 그래프를 차례대로 쌓는 것
- 그래프 사이의 간격이 y축의 값이 된다.
- matplotlib의 stackplot() 메서드를 사용한다.
1. pibot_table() 메서드로 각 '발행년도' 열의 값을 열로 바꾸기
- y축에 넣을 2차원 배열을 만든다.
- pandas의 pivot_table() 메서드를 사용한다.
- index 매개변수
- 행 인덱스로 사용할 열 이름을 넣는다.
- columns 매개변수
- 열 인덱스로 사용할 열 이름을 넣는다.
- index 매개변수
ns_book10 = ns_book9.pivot_table(index='출판사', columns='발행년도')
ns_book10.head()
이때, '발행년도' 열이 다단으로 구성되어 있다.
ns_book10.columns[:10]
"""
MultiIndex([('대출건수', 1971),
('대출건수', 1973),
('대출건수', 1974),
('대출건수', 1976),
('대출건수', 1977),
('대출건수', 1978),
('대출건수', 1979),
('대출건수', 1980),
('대출건수', 1981),
('대출건수', 1982)],
names=[None, '발행년도'])
"""
2. '발행년도' 열을 리스트 형태로 바꾸기
- x축에 넣을 리스트를 만든다.
- get_level_values() 메서드를 사용한다.
다단으로 구성된 '발행년도' 열에서 연도로 구성된 두 번째 항목만 가져온다.
top10_pubs = top30_pubs.index[:10]
year_cols = ns_book10.columns.get_level_values(1)
3. 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()
혼공분석 6주 차 회고
이로써 혼공학습단 활동이 끝났다. 귀찮아도 조금씩 공부하면서 끝까지 해보자는 마음에 힘을 내서 마무리를 할 수 있었다. 책 한 권이 끝나서 뿌듯하기도 하다.
'혼공학습단 > 혼자 공부하는 데이터 분석 with 파이썬' 카테고리의 다른 글
[혼공분석] 혼공학습단 14기 활동 회고 (1) | 2025.08.18 |
---|---|
[혼공분석] 5주차. 데이터 시각화하기 (1) | 2025.08.10 |
[혼공분석] 4주차. 데이터 요약하기 (4) | 2025.07.27 |
[혼공분석] 3주차. 데이터 정제하기 (0) | 2025.07.20 |
[혼공분석] 2주차. 데이터 수집하기 (2) | 2025.07.13 |