관리 메뉴

애독자's 공부방

[혼공분석] 5주차 _ 혼자 공부하는 데이터 분석 with 파이썬 본문

데이터분석/혼공학습단 13기

[혼공분석] 5주차 _ 혼자 공부하는 데이터 분석 with 파이썬

애독자 2025. 2. 10. 01:53
728x90

혼공단 - 혼공분석, 혼자 공부하는 데이터 분석 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의 손코딩(텍스트 정렬, 막대 조절 및 색상 바꾸기)을 코랩에서 출력하고 화면 캡처하기

 

 

 

728x90