Matplotlib 기초

도로롱·2022년 10월 17일
0

Matplotlib 기초

목록 보기
1/6

1. Matplotlib은 무엇일까?

넘파이 판다스 멧플랏립 3대장이야? ㅇㅇ

  • 판다스는 데이터를 전처리 하면서 분석하는 패키지고 넘파이는 수학 관련해서 쓰는거 같은데 아직 공부안해서 모르겠음. 멧플랏립은 데이터 시각화를 위한 library 인가부다

1.1 matplotlib의 특징

파이썬의 대표적인 과학 계산용 그래프 라이브러리
선 그래프, 히스토그램, 산점도 등의 고품질 그래프 제공
저수준 api를 사용한 다양한 시각화 기능 제공
다양한 운영체제와 그래픽 백엔드에서 동작

1.2 matplotlib과 pyplot

실습하다보면 pyplot을 겁나 많이 쓰는데 많이 쓴다고 그냥 암기하지 말고 뭔지는 알고 가야 겠다.
matplotlib은 모든 모듈과 라이브러리가 포함된 전체 패키지이며,
pyplot은 matplotlib에 있는 최상위 모듈
이다. 즉, 시각화 작업을 할때 대부분의 함수는 pyplot에 있다고 생각해도 무방하다. pyplot에 있는 모든 함수는 현재 figure의 현재 axes에 수행된다.

+) matplotlib 에 한글폰트 깨짐 방지 방법

import matplotlib.pyplot as plt
from matplotlib import rc # matplotlib의 rc 모듈을 사용하여 폰트 조정
rc("font" , family = 'Malgun Gothic') # 윈도우 버전
%matplotlib inline # 구버전의 주피터 노트북일 경우 그래프가 제대로 그려진다고 함


그래프의 제목에 한글을 입력했을 경우에 깨지지 않고 정상적으로 작동함.

1.3 figure와 axes

figure는 그래프를 그리기 위한 '그림'이자 '도화지' 라고 생각하자
axes(=subplot, figure안에 그리는 하나의 그래프)은 하나의 figure안에 여러개의 axes를 그릴 수 있다. 하지만 하나의 axes는 여러개의 figure에 속할수 없다.
axes는 2개의 축(x축,y축)을 가짐!

figure=그래프가 그려지는 캠버스

axes=그 캠버스안의 각각의 그래프


2. matplotlib이 제공하는 주요기능(차트종류)

2.1 line plot(선 그래프)

  • plot() 함수를 사용해서 만든다.
  • x축이 연속형 값인 경우 주로 활용한다 ex)날짜, 년도 와 같은 시계열 데이터에 주로 사용
  • subplot()함수 사용가능 = 하나의 figure에 여러개의 axes(subplot)생성

2.2 bar plot(막대 그래프)

  • x축이 주로 범주형 변수인 경우에 주로 활용 ex)성별, 이름, 기기유형 ...
  • bar(),barh()<<bar 그래프가 누운 그래프 사용

2.3 pie plot(파이 차트)

  • pie()
  • 점유율과 같이 y값이 100인 데이터 시각화에 주로 활용

2.4 히스토그램

  • 숫자 데이터를 동일한 폭(bucket)으로 그룹화 하여 자료를 표현
    = hist()

    왼)막대그래프 > x축: 이름 y축 :나이
    오)히스토그램> x축: 나이대 범위(bins=5, 그룹을 5개로 나눔) , y축: 도수(빈도= 그나이대 몇명이 있는지 나타냄)

2.5 scatter(): 산점도 그래프

  • 데이터의 분포를 볼때 주로 사용

2.6 imshow()

  • 단순하게 이미지를 그릴때 사용

다양한 형태의 plot 타입을 많이 제공하고 있으니 각각의 파라미터도 그만큼 다양하니 많이 연습하고 익숙해져야 제대로 쓸수 있음을 잊지말자

2.7 상황별 차트 선택 가이드 라인

데이터 분석 목적(비교,관계,분산,구성요소)에 따라 가이드를 두고 있다

  • 비교

  • 관계
    =스캐터, 버블 차트
  • 분산
    =히스토그램
  • 구성요소
    =파이차트, 막대그래프(stacked)


3. matplot 실습하기

1. 하나의 그래프 그리기

  1. 판다스와 멧플롯립의 pylplot 가져오기
  2. 하나의 라인 그래프 그리기

+) 그래프에 정보 추가하고 싶을떄

  1. 하나의 bar 그래프 그리기

    bar 함수는 인자를 2개 입력해줘야 함
    bar(x값, y값)

2개 이상의 axes를 하나의 figure에 그리기

  1. 하나의 figure안에 line, bar plot 그리기
  • plt.subplots()의 객체로 fig, axes 선언하기

+) 번외

  • subplot 함수 쓰지 않고도 이렇게 만들수도 있음
  1. 두개의 그래프를 그리되, x축만 공유하고 다른 y축 만들기

y축의 값이 너무 많이 차이 나는 상황이므로 x축만 공유하되 y축을 하나 더 만들어주기로 한다

  • axes를 하나로 통합하지 말고, 서로 다른 변수로 지정해주기(선그래프 =axes, 바 그래프=ax2)
  • ax2=twinx() ,ax2가 axes와 x축만 공유하므로 ax2의 y축은 오른쪽으로 넘어간다

  • axes.tick_params(axis='y', labelcolor='r)
    axes의 y축의 라벨 컬러를 빨간색으로 바꾼다

  • ax2.bar(alpha=0~1). 막대그래프의 투명도를 결정한다. 이렇게 서로 진한색일 경우에는 하나의 그래프가 하나의 그래프를 가려버리는 일이 발생한다. 이때 알파를 통해 재조정해주면 됨


3. 여러개 그래프 그리기

  1. 그래프 생성을 위한 난수 가져오기

  2. 여러개의 axes 생성을 위한 plt.subplots()의 객체 생성, ()안에 2,2를 설정해준다. 이는 2개의 figure안에 2개씩의 그래프(axes)를 그리겠다는 말이다

  3. 어떤 그래프를 그릴까?

  • axes[0,0]: 선그래프, x축과 y축 그리고 해당 그래프에도 이름을 붙여 줄 수 있다. set_함수 사용
  • axes[0,1]: 히스토그램
  • axes[1,0]: 막대그래프
  • axes[1,1]: scatter 그래프
  1. 각 그래프간의 간격 유지하기
    plt.subplots_adjust(가로길이=, 세로길이=)

profile
질문 없는 성장은 없다. 3년차 데이터 분석가

0개의 댓글