6. 복잡한 데이터 표현하기
1) 객체지향 API로 그래프 꾸미기
(1) pyplot 및 객체지향 API 방식으로 그래프 그리기
(2) 출판사별 발행 도서 개수 산점도 그리기
2) 맷플롯립의 고급 기능 배우기
(1) 여러 개의 선 그래프 그리기
(2) 스택 영역 그래프 그리기
(3) 여러 개의 막대 그래프 그리기
(4) 원 그래프 그리기
(5) 여러 종류 그래프가 있는 서브플롯 그리기
1) 객체지향 API로 그래프 꾸미기
(1) 그래프 그리기
① pyplot 방식
- matplotlib.pyplot에 있는 함수를 사용
- y축은 plot() 함수에 전달한 값, x축은 인덱스 값으로 함
② 객체지향 API 방식
- 동일한 그래프를 피겨(fig) 객체와 Axes 객체를 사용하여 그리기
- 피겨 객체 설정을 바꾸거나, 서브플롯을 추가하는 경우에 사용함
(2) 출판사별 발행 도서 개수 산점도 그리기
① 고유한 출판사 목록 만들기
- [value_counts() 메서드]로 상위 30개 출판사 목록을 만들며, 해당 메서드는 내림차순 정렬함
민음사 3349
...
북이십일 1026
- [isin() 메서드]로 상위 30개 출판사에 해당하면 True, 아니면 False로 반환함
- [sample() 메서드]로 무작위 1000개 행 선택하고, [random_state 매개변수]로 동일한 결과 출력
1 False
...
376769 False
② 산점도 그리기
- [subplots() 함수]로 피겨의 크기를 지정함
- [scattter() 함수]로 x축은 '발행년도', y축은 '출판사'를 지정하여 산점도 그리기
③ 마커 꾸미기
- [s 매개변수]로 마커 크기를 다르게 나타내기 ('대출건수' X 2 값으로 마커 크기 지정)
- [linewidths 매개변수]로 마커 테두리 선의 두께 바꾸기 (기본값 1.5)
- [edgecolors 매개변수]로 마커 테두리 색 바꾸기 (기본값 face, 검정색 k)
- [alpha 매개변수]로 마커 투명도 조절하기 (진할수록 해당 값이 많음을 의미)
- [c 매개변수]로 마커 색 바꾸기 (작은 값은 짙은 녹색 → 큰 값은 밝은 노랑)
- [colorbar() 메서드]로 색깔이 어떤 값에 대응하는지 참조 정보를 제공하는 컬러 막대 표시하기
④ 컬러맵 (값에 따라 색상 표현)
- [cmap 매개변수]로 컬러맵을 지정함 (파랑→노랑→빨강 순인 jet 컬러맵을 자주 사용함)
2) 맷플롯립의 고급 기능 배우기
(1) 여러 개의 선 그래프 그리기
① 2개의 선 그래프 그리기
- 상위 30위 출판사에 해당하는 행만 선택해서 '출판사', '발행년도', '대출건수' 열을 추출함
- [groupby() 메서드]로 '출판사'&'발행년도' 기준으로 행을 묶은 후, [sum() 메서드]로 '대출건수' 합을 계산함
- 2개 출판사에 대한 선 그래프를 그림
- [label 매개변수]로 레이블을 추가하고, [legend() 메서드]로 범례를 추가함
② 5개의 선 그래프 그리기
- 상위 5개 출판사에 대해 선 그래프 그리기
- [set_xlim() 메서드]로 x축의 좌표 범위를 설정함 (y축은 [set_ylim() 메서드])
(2) 스택 영역 그래프 그리기
- [pivot_table() 메서드]로 열 이름을 '발행년도' 값으로 바꾸기 (열 값이 하나의 열이 되게)
- [get_level_values() 메서드]로 다단으로 구성된 열에서 선택한 항목만 가져올 수 있음
- [stackplot() 메서드]로 스택 영역 그래프 그리기
- [fillna() 메서드]로 누락된 값을 0으로 채움
- [loc 매개변수]로 범례 위치 지정 (기본값은 'best'로 최상단 위치)
(3) 여러 개의 막대 그래프 그리기
① 묶은 세로 막대 그래프
- [bar() 메서드]로 막대 그래프 그리며, x값 위치를 이동시켜 옆으로 나란한 막대 그래프를 그림
- [width 매개변수]로 막대 두께 지정
② 누적 세로 막대 그래프
- [cumsum() 메서드]로 누적 값을 계산함
- 큰 막대(누적 값)를 먼저 그린 후, 작은 막대 순으로 그려서 막대를 쌓을 수 있음
- [range() 함수]로 행 개수만큼 인덱스 번호를 만들고, for 문에 [reversed() 함수]로 인덱스의 역순으로 반복하여 그림
(4) 원 그래프 그리기
- 상위 5개 출판사의 도서 개수 및 인덱스를 저장함
- [pie() 메서드]로 원 그래프 그리기
- [startangle 매개변수]를 90으로 지정하면 12시 방향부터 반시계 방향 순으로 그림 (기본값 3시 방향부터 반시계 방향 순)
- [autopct 매개변수]로 포맷팅 문자열 지정 ('%d'는 정수)
- [explode 매개변수]로 원하는 조각을 떨어뜨려 중요한 항목 강조
(5) 여러 종류 그래프가 있는 서브플롯 그리기
6주차. 기본 미션
p344의 손코딩(맷플롯립의 컬러맵으로 산점도 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기
6주차. 선택 미션
p356 ~ 359의 스택 영역 그래프를 그리는 과정을 정리하기
'혼공학습단 > 혼자 공부하는 데이터 분석 with 파이썬' 카테고리의 다른 글
[혼공분석] 11기 마무리하며♡ (2) | 2024.02.12 |
---|---|
[혼공분석] #7. 검증하고 예측하기 (1) | 2024.02.12 |
[혼공분석] #5. 데이터 시각화하기 (1) | 2024.02.04 |
[혼공분석] #4. 데이터 요약하기 (1) | 2024.01.28 |
[혼공분석] #3-2. 잘못된 데이터 수정하기 (1) | 2024.01.21 |