[혼공분석] #5. 데이터 시각화하기
5. 데이터 시각화하기
1) 맷플롯립 기본 요소 알아보기
(1) Figure 객체
(2) rcParams 객체
(3) 여러 개의 서브플롯 출력하기
2) 선 그래프와 막대 그래프 그리기
(1) 발행년도별 도서 개수 구하기
(2) 주제별 도서 개수 구하기
(3) 선 그래프 그리기
(4) 막대 그래프 그리기
1) 맷플롯립 기본 요소 알아보기
(1) Figure 객체
- 피겨는 맷플롯립의 그래프 요소를 모두 담고 있는 최상위 객체
- [Figure() 함수]의 [figsize 매개변수]로 그래프 크기를 지정할 수 있음
- 예상보다 그래프가 작게 그려진 이유는 DPI 때문임
- 원하는 크기(픽셀)에 맥플롯립 DPI 기본값인 72로 나누고, [bbox_inches 옵션]을 None으로 지정하여 타이트 레이아웃(그래프 주변 공백 최소화)을 사용하지 않아야 정확한 크기의 그래프가 그려짐
- [dip 매개변수]로 그래프 크기를 바꾸면, 그래프 내 모든 구성 요소 크기도 바뀜 (마커, xy축 숫자 등)
(2) rcParams 객체
- rcParams는 맷플롯립 그래프의 기본값을 관리하는 객체
- [figure.dpi]로 DPI 기본값을 바꿔 그래프 해상도를 높일 수 있음
- [scatter.marker]로 산점도 기본 마커 모양을 바꿀 수 있음
- [marker 매개변수]로 기본값이 아닌 해당 그래프의 마커 모양을 바꿀 수 있음
(3) 여러 개의 서브플롯 출력하기
- 서브플롯은 피겨 안에 포함된 그래프를 의미하며, Axes 객체를 의미함
(Axis 클래스는 축 객체를 다루며, 두 개 이상의 Axis 객체로 이루어지면 Axes를 의미함)
- [subplots() 함수]에 원하는 서브플롯 개수를 지정함
- Figure 클래스 객체인 fig에 Axis 클래스 객체인 axs[]을 서브플롯으로 추가하는 형태
- subplots(행 개수, 열 개수)로 서브플롯 모양 지정
- [set_title()]로 제목 지정, [set_xlable()], [set_ylable()]로 축 이름 지정
2) 선 그래프와 막대 그래프 그리기
(1) 발행년도별 도서 개수 구하기
- [value_counts() 메서드]로 고유한 값이 등장한 횟수를 계산함
- 발행년도별 도서 개수를 출력 → 값 내림차순으로 출력됨
2014 17797
2009 17611
...
1947 1
Name: 발행년도, Length: 87, dtype: int64
- [sort_index() 메서드]로 인덱스 순으로 내림차순 출력
1948 3
1949 1
...
2650 1
- 부등호 기호를 통해 발행년도가 2030년 이하만 출력
(2) 주제별 도서 개수 구하기
- 주제분류번호(no)가 1로 시작하면 철학, 2로 시작하면 종교 등 첫 번째 문자 기준으로 도서 개수 출력하기
- no가 NaN인 경우 -1로 반환, 그렇지 않으면 첫 번째 문자를 반환하여 kdc_1st_char() 함수를 선언한 후 [apply() 메서드]에 넣어 데이터프레임에 반복 적용
3 80767
-1 16978
0 12376
Name: 주제분류번호, dtype: int64
(3) 선 그래프 그리기
- 그래프 해상도 향상을 위해 맷플롯립의 기본 DPI를 100으로 변환
- [plot(x축, y축) 함수]로 선 그래프 그리기
- [linestyle 매개변수]로 선 모양 지정 (실선 '-', 점선 ':', 쇄선 '-.', 파선'--')
- [color 매개변수]로 선 색상 지정 (blue, magenta, yellow, cyan 등)
- [xticks() 함수]로 x축의 눈금을 지정할 수 있으며, [range() 함수]로 범위 지정
- [슬라이스 연산자(:)]로 표시할 값을 선택, [items() 메서드]로 인덱스의 값을 감싼 튜플을 얻을 수 있음
- [annotate(값, (x, y)) 함수]로 값을 출력하며, [xytext 매개변수]로 값 위치를 조정함
- x,y축 단위 차이가 클 경우, [textcoords 매개변수]로 상대 위치를 나타내는 'offset points'로 지정
(4) 막대 그래프 그리기
- [bar() 함수]로 막대 그래프 그리기
- [width 매개변수]로 막대 두께를 조절, [color 매개변수]로 막대 색깔을 지정함
- [annotate() 함수]의 [ha 매개변수]를 'center'로 지정하면 값 위치가 가운데 정렬되고, fontsize로 글자크기, color로 글자색을 지정함
- [barh() 함수]로 가로 막대 그래프 그리기
- [heiht 매개변수]로 막대 두께 조절하며, xy축 값이 바뀌어야 하고, [va 매개변수]로 값 위치 지정함
5주차. 기본 미션
p314. 손코딩[맷플롯립에서 bar() 함수로 막대 그래프 그리기]을 코랩에서 그래프 출력하고 화면 캡처하기
5주차. 선택 미션
p316. 손코딩[텍스트 정렬, 막대 조절 및 색상 바꾸기]을 코랩에서 그래프 출력하고 화면 캡처하기