본문 바로가기
IT/Python

[데이터 시각화] Python-라이브러리 matplotlib 기초 내용 정리

by dwoi 2023. 3. 31.

본 글은 Python에서 제공하는 데이터 시각화 라이브러리인 matplotlib에 대해서

공부한 기초적인 내용을 정리하는 글임을 밝힘.

 

목차

     


    Matplotlib

    • 데이터 분석에서는 다루는 데이터는 매우 다양함
    • 이러한 데이터의 크기가 수천, 수만개를 넘어가기 때문에 데이터 시각화가 필요
    • 판다스 내장 메소드로는 한계가 존재
    • 시각화 전문 도구를 사용해서 원하는 형태의 그래프를 그려야 함.

    1. 선 그래프

    • 연속하는 데이터 값들을 직선 또는 곡선으로 연결한 그래프
    • 시계열 데이터와 같이 시간에 따른 연속적인 값의 변화와 패턴을 활용하는 데 적합함

    1.1. 선 그래프 만들기

    ⓐ. 기본 그래프

    1. 데이터프레음으로 연도별 매출액 현황 데이터를 로드
    2. plt.plot() 메소드를 사용함 (plt는 matplotlib.pyplot 모듈을 의미함)

    ⓑ. 그래프 꾸미기

    • Matplotlib은 한글 폰트를 지원하지 않음
    • OS에 따라서 한글 폰트를 지정하는 코드가 다름
    • 그래프의 크기, 이름, x축 y축, 범례 등을 지정할 수 있음.
    • 그래프의 스타일을 지정: ggplot
    • 선 그래프의 포인트(marker) 변경 가능
    • 제목 x축 y축 범례 등의 폰트 사이즈 조정 가능

    ⓒ. 그래프 스타일 변경

    • plt.style.use(bmh)
    • 다양한 스타일을 지원

     


     

    2. 화면 분할 그래프

    • axe 객체
      • 한 번에 여러 개의 그래프를 그려야 할 때 axe 객체를 사용
      • 분활된 화면마다 axe 객체를 하나씩 배정
    • 그래프 생성
      • figure() 메소드를 사용하여 그림을 객체로 만듦
      • 해당 객체에 add_subplot() 메소드를 적용하여 그림틀을 여러 개로 분할
      • 나눠진 각 부분은 axe 객체가 되며 하나의 객체는 하나의 그래프가 됨.
    • ex.
      1. 연도별 전체 매출과 일반 매출 그래프를 각각 그릴 수도 있음.
      2. 2 * 2 화면에 4개의 그래프를 그릴 수도 있음.
      3. 하나의 화면에 여러 개의 데이터를 동시에 그리는 것도 가능.

     

    3. 면적 그래프

    3.1 면적 그래프

    • 각 열의 데이터를 선 그래프로 구현하되, 선과 x축 사이 구간에 색을 입히는 것으로 형성
    • 색에 투명도를 입혀 여러 개의 데이터가 동시에 보일 수 있도록 함
    • 면적 그래프는 2개 이상의 그래프의 누적이 가능
      • 각 열의 패턴과 함께 누적된 값이 어떻게 변화하는지 파악할 수 있음.

     

    3.2. 막대 그래프

    • 막대 그래프는 데이터 값의 크기에 비례하여 높이를 갖는 직사각형 막대로 표현
      • 세로형 그래프의 경우 선 그래프와 정보 전달 측면에서 큰 차이 X
    • 가로형 그래프의 경우 각 변수 사이 값의 크기 차이를 설명하는 데 적합
      • 보통 값이 가장 큰 변수부터 내림차순 정렬하여 그래프를 그림.

     

     

     


     

    4. 기타 그래프

    4.1. 히스토그램

    • 하나의 연속형 변수의 구간별 빈도수를 그래프로 표현
    • 구간을 나누는 간격에 따라 빈도수가 달라지고 그래프의 모양이 변함

    4.2. 산점도

    • 서로 다른 두 연속형 변수 사이의 관계를 나타냄

     

    4.3. 파이 차트

    • 데이터 값의 크기에 따라 원의 조각을 나누어 표현
    • 항목별 개수와 개별 항목이 전체에서 차지하는 비율을 표현할 때 많이 사용

     

    4.4. 박스 플롯

    • 박스 플롯은 연속형 데이터의 전반적인 분포를 확인하는데 적합
      • 5가지 통계 지표를 하나로 시각화
        • 최대값
        • 최소값
        • 중간값
        • 1분위값
        • 3분위값

     

    마무리

    폰트 파일이 존재함에도 불구하고 정상적으로 인지하지 못하고 있다는 점이 궁금했음.

    원리 자체는 어렵지 않았지만 익숙해질 필요성을 느낌.

    각각 그래프의 용도 어떨 때 사용할 지 생각하고 그래프 작업을 할 필요성을 느낌 

    댓글