일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 맛있는디자인스터디13기
- 후기
- 생성형AI
- Doit파이썬스터디
- 스터디완료
- 맛있는디자인스터디12기
- 혼공분석
- 3주차후기
- 혼공C
- 애프터이펙트
- 제이펍
- 프리미어프로
- 전면개정2판
- 스터디
- Doit점프투파이썬
- 혼공JS
- 혼공자
- 혼공단
- 6주차후기
- 혼공
- 진짜쓰는일러스트레이터
- 혼공파
- 회고
- 맛있는디자인
- 맛있는디자인스터디11기
- CC2023
- 챌린지
- 혼공학습단
- 혼공머신
- CS2023
- Today
- Total
애독자's 공부방
[혼공분석] 5주차 _ 혼자 공부하는 데이터 분석 with 파이썬 본문
혼공단 - 혼공분석, 혼자 공부하는 데이터 분석 with 파이썬
■ 공부한 내용
# | 진도 | 기본 숙제(필수) | 추가 숙제(선택) |
5주차 (2/10 ~ 2/16) |
Chapter 05 | p. 314의 손코딩(맷플롯립에서 bar()함수로 막대 그래프 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기 | p. 316의 손코딩(텍스트 정렬, 막대 조절 및 색상 바꾸기)을 코랩에서 출력하고 화면 캡처하기 |
□ Chapter 05 | 데이터 시각화하기
▷ 05-1 | 맷플롯립 기본 요소 알아보기
1. 핵심 포인트 요약
- 피겨(Figure): 맷플롯립의 그래프 요소를 모두 담고 있는 최상위 객체. 맷플롯립으로 그래프를 그릴 때 자동으로 피겨가 생성되고, 그려진 후 삭제. 명시적으로 피겨 객체를 만들면 다양한 옵션 제어가 가능
. DPI(dot per inch): 1인치를 몇 개의 점(픽셀:pixel)으로 표현하는지 나타냄 (인쇄 출력물의 해상도)
※ PPI(pixel per inch)인 화면 해상도와 같은 의미로 사용
예) 2560×1600픽셀의 해상도, 227DIP → 2560/227=11.3인치 × 1600/227=7인치
☆ 피겨: 그래프를 그리는 캔버스 크기 / DPI: 그래프를 확대해서 보는 돋보기
- rcParams: 맷플롯립 그래프의 기본값을 관리하는 객체. 객체에 담긴 값만 출력하는 것뿐만 아니라 새로운 값으로 변경도 가능. 이후에 그려지는 모든 그래프에 바뀐 설정이 적용됨
. 마커(marker): 그래프에 데이터 포인트를 표시하는 방법. 맷플롯립의 기본 마커는 동그라미를 나타내는 'o'로, rcParams 객체나 scatter() 함수의 marker 매개변수로 마커를 변경 가능
- 서브플롯(subplot): 피겨 안에 포함된 그래프 영역으로 보통 Axes 객체를 가리킴. subplots() 함수로 여러 개의 서브플롯과 서브플롯을 포함하는 피겨를 생성 가능
. 축(Axis): 그래프에서 데이터 좌표를 표현. 2차원 그래프는 2개의 축을, 3차원 그래프는 3개의 축을 가짐. Axis 클래스로 축 객체를 다룸. 두 개 이상의 Axis 객체로 이루어진 Axis 객체는 그래프가 그려질 영역을 포현
2. 책에 나온 함수와 메서드
함수/메서드 | 기능 | 사용 |
matplotlib.pyplot.figure() | 피겨 객체를 만들어 반환 | matplotlib.pyplot.figure(figsize, dpi) |
. 매개변수: 설명 | ||
. figsize: 피겨의 크기를 (너비, 높이) 형식의 튜플로 지정. 단위는 인치로, 기본값은 (6, 4) . dpi: 피겨의 DPI를 지정. (기본값: 72) |
||
matplotlib.pyplot.subplots() | 피겨와 서브플롯을 생성하여 반환 | matplotlib.pyplot.subplots(nrows, ncols, figsize) |
. nrows: 서브플롯 격자의 행 개수를 지정 . ncols: 서브플롯 격자의 열 개수를 지정 . figsize: 피겨의 크기를 (너비, 높이) 형식의 튜플로 지정. 단위는 인치로, 기본값은 (6, 4) |
||
Axes.set_xscale() | 서브플롯의 x축 스케일을 지정 | Axes.set_xscale(value) |
. value: 'log'로 지정하면 x축을 로그 스케일로 변경 | ||
Axes.set_yscale() | 서브플롯의 y축 스케일을 지정 | Axes.set_yscale(value) |
. value: 'log'로 지정하면 y축을 로그 스케일로 변경 | ||
Axes.set_title() | 서브플롯의 제목을 설정 | Axes.set_title(label) |
. label: 제목으로 사용할 문자열을 전달 | ||
Axes.set_xlabel() | 서브플롯의 x축 이름을 지정 | Axes.set_xlabel(xlabel) |
. xlabel: 축 이름으로 사용할 문자열을 전달 | ||
Axes.set_ylabel() | 서브플롯의 y축 이름을 지정 | Axes.set_ylabel(ylabel) |
. ylabel: 축 이름으로 사용할 문자열을 전달 |
▷ 05-2 | 선 그래프와 막대 그래프 그리기
1. 핵심 포인트 요약
- 선 그래프(line graph):각 데이터에서 포인트를 직선으로 연결한 그래프. 선의 스타일이나 마커의 모양을 바꾸어 풍부하게 표현할 수 있고 데이터값을 그래프에 텍스트로도 쓸 수 있음
- 막대 그래프(bar graph):데이터 포인트의 크기를 막대 높이로 나타난 그래프. 전형적으로 x좌표는 연속적이지 않은 범주형이며 y좌표는 해당 범주의 값. 가로 막대 그래프는 값이 클수록 막대의 길이가 가로로 길어짐
- 명목형 데이터(nominal data): 순서를 매길 수 없는 데이터 (성별, 국가 등)
- 순서형 데이터(ordinal data): 순서가 있는 데이터 (만족도, 성적 등급 등)
. 어떤 카테고리를 나타낼 때 순서형 데이터라면 그래프로 표현하기 전에 순서대로 정렬 (성적일 경우: A, B, C, D, F 순)
2. 책에 나온 함수와 메서드
함수/메서드 | 기능 | 사용 |
matplotlib.pyplot.plot() | 선 그래프를 그리기 | matplotlib.pyplot.plot(x, y, fmt, marker, linestyle, color) |
. 매개변수: 설명 | ||
. x: x축의 값을 지정 . y: y축의 값을 지정 . fmt: 포멧 문자열, 마커, 선 스타일, 색깔의 조합으로 지정. 예를 들어 'o:y'는 동그라미 마커가 있는 노란색 점선 . marker: 마커를 지정 . linestyle: 선 스타일을 지정 ('-': 실선 / '--': 파선 / '-.': 쇄선 / ':': 점선) . color: 색깔을 지정 |
||
matplotlib.pyplot.title() | 그래프 제목을 설정 | matplotlib.pyplot.title(label) |
. label: 제목으로 사용할 문자열을 전달 | ||
matplotlib.pyplot.xalbel() | x축 이름을 지정 | matplotlib.pyplot.xalbel(xlabel) |
. xlabel: 축 이름으로 사용할 문자열을 전달 | ||
matplotlib.pyplot.ylabel() | y축 이름을 지정 | matplotlib.pyplot.yalbel(ylabel) |
. ylabel: 축 이름으로 사용할 문자열을 전달 | ||
matplotlib.pyplot.xticks() | x축의 눈금 위치와 레이블을 지정 | matplotlib.pyplot.xticks(ticks, labels) |
. ticks: 눈금 위치의 리스트를 전달. 빈 리스트를 전달하면 눈금을 모두 삭제 . labels: 눈금에 표시할 레이블을 지정. 이 매개변수를 전달하지 않으면 ticks 매개변수를 레이블로 사용 |
||
matplotlib.pyplot.annotate() | 지정한 좌표에 텍스트를 출력 | matplotlib.pyplot.annotate(text, xy, xytext, xycoords, textcoords, fontsize, ha, va, color) |
. text: 그래프에 표시할 문자열을 전달 . xy: 텍스트가 표시될 데이터 포인트 (x,y)를 튜플로 전달 . xytext: 텍스트를 표시할 좌표를 지정. 이 매개변수를 지정하지 않으면 xy의 값을 좌표로 사용 . xycoords: xy의 좌표 시스템을 선택. (기본값: 'data'로 데이터 포인트의 좌표를 사용 / 'figure points'는 피겨의 왼쪽 아래에서 시작하는 포인트 단위 / 'figure pixels'는 피겨의 왼쪽 아래에서 시작하는 픽셀 단위) . textcoords: xytext의 좌표 시스템을 선택. (기본값: xycoords 값 / 'offset points'는 xy에서부터 시작하는 포인트 단위 / 'offset pixels'는 xy에서부터 시작하는 픽셀 단위) . fontsize: 폰트 크기를 지정 . ha: 수평 방향 정렬을 지정. (기본값: 'right'로 오른쪽으로 정렬 / 'center'는 중앙으로 정렬 / 'left'는 왼쪽으로 정렬) . va: 수직 방향 정렬을 지정. (기본값: 'baseline'으로 알파벳 기준선을 의미 / 'center'는 가운데로 정렬 / 'top'은 위쪽으로 정렬 / 'bottom'은 아래쪽으로 정렬) . color: 텍스트 색깔을 지정 |
||
matplotlib.pyplot.bar() | 세로 막대 그래프 그리기 | matplotlib.pyplot.bar(x, height, width, color) |
. x: 막대 그래프의 x 좌표를 지정 . height: 막대의 높이를 지정 . width: 막대의 두께를 지정 (기본값: 0.8) . color: 막대 색깔을 지정 |
||
matplotlib.pyplot.barh() | 가로 막대 그래프 그리기 | matplotlib.pyplot.barh(y, width, height, color) |
. y: 가로 막대 그래프의 x 좌표를 지정 . width: 가로 막대 그래프의 길이를 지정 . height: 가로 막대의 두께를 지정 (기본값: 0.8) . color: 막대 색깔을 지정 |
||
matplotlib.pyplot.imread() | 이미지 파일을 넘파이 배열로 읽어들이고, 넘파이 배열을 반환 | matplotlib.pyplot.imread(fname) |
. fname: 읽을 이미지 파일 이름 | ||
matplotlib.pyplot.imshow() | 이미지를 출력 | matplotlib.pyplot.imshow(X, aspect) |
. X: 넘파이 배열 또는 Pillow 이미지 객체 . aspect: 기본값은 'equal'로 원본 이미지의 가로 세로 비율을 유지. 'auto'로 지정하면 현재 피겨에 맞춰 가로 세로 비율을 조정 |
||
matplotlib.pyplot.imsave() | 넘파이 배열을 이미지 파일로 저장 | matplotlib.pyplot.imsave(fname, arr) |
. fname: 이미지를 저장할 파일 이름 . arr: 이미지 데이터가 저장된 배열. 파일 확장자에 따라 이미지 포멧이 자동으로 결정됨 |
||
matplotlib.pyplot.savefig() | 그래프를 이미지로 저장 | matplotlib.pyplot.savefig(fname, dpi) |
. fname: 이미지를 저장할 파일 이름 . dpi: 이미지를 저장하는데 사용할 DPI를 지정. (기본값: 'figure'로 피겨의 DPI 설정값을 따름) |
■ 기본 숙제
- p. 314의 손코딩(맷플롯립에서 bar()함수로 막대 그래프 그리기)을 코랩에서 그래프 출력하고 화면 캡처하기
■ 추가 숙제(선택)
- p. 316의 손코딩(텍스트 정렬, 막대 조절 및 색상 바꾸기)을 코랩에서 출력하고 화면 캡처하기
'데이터분석 > 혼공학습단 13기' 카테고리의 다른 글
[혼공분석] 4주차 _ 혼자 공부하는 데이터 분석 with 파이썬 (0) | 2025.02.04 |
---|---|
[혼공분석] 부록 _ Github Gist에 Jupyter Notebook 파일 등록하고 Tistory 블로그에 추가하기 (0) | 2025.01.26 |
[혼공분석] 3주차 _ 혼자 공부하는 데이터 분석 with 파이썬 (0) | 2025.01.20 |
[혼공분석] 2주차 _ 혼자 공부하는 데이터 분석 with 파이썬 (1) | 2025.01.13 |
[혼공분석] 1주차 _ 혼자 공부하는 데이터 분석 with 파이썬 (2) | 2025.01.08 |