22.10.25 - 시각화(matplotlib)

LaMelo·2022년 10월 25일
0

jupyter

목록 보기
25/29
post-thumbnail

Matplotlib

  • 파이썬 기반 데이터 분석 환경에서 가장 일반적으로 사용되는 시각화 라이브러리

  • 하위 라이브러리인 'pyplot'을 통해 주요 기능을 사용

  • plotly, seaborn 등과 같은 라이브러리가 최근 경쟁력을 갖추고 있음

  • pandas 객체의 기본적인 시각화 도구

  • plot() 메서드를 통해 데이터를 시각화

  • 종류

    • 라인 플롯(line plot)
    • 바 차트(bar chart)
    • 히스토그램(histogram)
    • 박스 플롯(box plot)
    • 스캐터 플롯(scatter plot)
  • 라이브러리 가져오기

plt.plot(y)

  • 기본 : 라인 플롯(line plot)
  • 데이터가 시간, 순서 등에 따라 변화하는 흐름 파악
  • x가 주어지지 않을 경우 자동 생성 :x = range(len(y))
    • 데이터 생성 : 5~6개의 아이템을 가지는 리스트
      - plot(data) : 기본적으로 y축의 값으로 데이터를 매칭시킴
      - x -> len(data) 만큼의 인덱스 번호 생성
    • x tick(x축 값)설정
      • plt.plot(x, y) : x에 넣어준 리스트와 y에 넣어준 리스트의 길이가 같아야함

Matplotlib 한글 깨지지 않게 설정하는 법

  • 축 이름과 plot 제목 지정

    • plot 제목 : plt.title('title')
    • x축 이름 : plt.xlabel('x_name')
    • y축 이름 : plt.ylabel('y_name')
  • 선 두개 그려보기

    • 각각의 라인 그래프를 순차적으로 plt.plot() 명령어로 입력
  • 범례 추가하기

    • 범례(legend) 추가 : plt.legend()

스타일 지정

  • plt.plot([x], y, [fmt], **kwargs)
    - fmt : '[color][marker][line]'
    - 색상, 마커, 선 등에 대한 포맷 옵션 설정
    1) 마커 참조 도큐먼트 주소

    https://matplotlib.org/3.1.3/api/markers_api.html

    2) 색상 참조 도큐먼트 주소

    https://matplotlib.org/3.1.0/gallery/color/named_colors.html

    3) 라인 스타일 참조 도큐먼트 주소

    https://matplotlib.org/gallery/lines_bars_and_markers/line_styles_reference.html

  • 스타일 문자열 추가 : [fmt] => color + maker + line 순서대로 문자열 작성

    • 어느 요소를 생략하면 해당 생략된 요소는 기본값으로 적용
    • 'o' : 라인 없이 큰 점(원모양)으로 데이터 위치 표시
    • o- : 마커는 동그라미, 라인은 실선
      • fmt[색상][마커][선종류]
    • o-- : 마커는 동그라미, 라인은 점선
    • [ro:] : r(빨간색), o(마커), :(점으로 된 점선)
  • 기타 스타일 파라미터 종류

    • color : 색상(magenta)
    • linestyle : -.
    • marker : ^
    • markerfacecolor : orange
    • markersize : 20

축 범위 지정

matplotlib.pyplot.axis

  • xmin, xmax, ymin, ymax = plt.axis([xmin, xmax, ymin, ymax])
    • xmin : x축 최소값
    • xmax : x축 최대값
    • ymin : y축 최소값
    • ymax : y축 최대값

matplotlib.pyplot.xlim / ylim

  • plt.xlim(min, max)

  • plt.ylim(min, max)

  • 자료값에 비해 큰 플롯을 지정한 경우

    • 자료의 예측치같은 그래프의 공백을 통해 유추하고자 하는 것이 있을 경우 사용할 수 있다.
  • 자료값에 비해 지나치게 작은 플롯을 구성할 경우 일부 플롯이 잘려나간다.

  • grid 표시하기

    • grid는 격자무늬로 표시할때는 plt.grid(True)를 한 줄 더 실행해주면 된다.

matplotlib.pyplot.scatter

  • 대표값을 중심으로 데이터가 흩어져 있는 정도를 시각화

  • 데이터의 분산 정도, 데이터 간의 상관관계를 파악할 수 있음

  • plt.scatter(x, y, s=None, c=None, data=None)

    • s : 마커 사이즈
    • c : 마커 색상
    • data : dictionary 자료형을 사용하여 데이터를 전달하면 keyword string을 통해 데이터 사용 가능
  • 정규분포 확률밀도에서 100개의 표본 추출

    • scatter는 경향성을 보기 위한 방법으로 순서에 따른 과정은 그리 중요하지 않은 자료에서 사용하게 된다.
      • scatter가 필요한 자료에 plot을 쓰게 되면?
        • 의미를 알 수 없는 그래프가 도출되게 된다.
    • c는 산점도 색깔, s는 사이즈

Bar chart (막대 그래프)

  • 여러 값의 상대적인 크기를 비교하기에 적합한 표현법이며 원형 차트보다 더욱 일반적으로 사용됨

  • plt.bar(x, y)

    • x 데이터가 카테고리 값인 경우에는 bar, barh 로 바 차트 시각화 표현
    • 가로 방향으로 바 차트를 그리려면 barh
    • barh 차트 주의점 : x축이 일반적으로 y축의 위치를 의미
  • 범주형 데이터에 대한 bar graph 기본

    • 제목, xlabel, ylabel
      • 바마다 붙일 이름을 바꿔주고 싶다면, xticks를 씁니다.
    • 각각의 bar마다 색상 변경
      • plt.bar()객체 set_color()
profile
가즈아~

0개의 댓글