본 글은 Python에서 제공하는 데이터 시각화 라이브러리인 matplotlib에 대해서
공부한 기초적인 내용을 정리하는 글임을 밝힘.
목차
Matplotlib
- 데이터 분석에서는 다루는 데이터는 매우 다양함
- 이러한 데이터의 크기가 수천, 수만개를 넘어가기 때문에 데이터 시각화가 필요
- 판다스 내장 메소드로는 한계가 존재
- 시각화 전문 도구를 사용해서 원하는 형태의 그래프를 그려야 함.
1. 선 그래프
- 연속하는 데이터 값들을 직선 또는 곡선으로 연결한 그래프
- 시계열 데이터와 같이 시간에 따른 연속적인 값의 변화와 패턴을 활용하는 데 적합함
1.1. 선 그래프 만들기
ⓐ. 기본 그래프
- 데이터프레음으로 연도별 매출액 현황 데이터를 로드
- 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.
- 연도별 전체 매출과 일반 매출 그래프를 각각 그릴 수도 있음.
- 2 * 2 화면에 4개의 그래프를 그릴 수도 있음.
- 하나의 화면에 여러 개의 데이터를 동시에 그리는 것도 가능.
3. 면적 그래프
3.1 면적 그래프
- 각 열의 데이터를 선 그래프로 구현하되, 선과 x축 사이 구간에 색을 입히는 것으로 형성
- 색에 투명도를 입혀 여러 개의 데이터가 동시에 보일 수 있도록 함
- 면적 그래프는 2개 이상의 그래프의 누적이 가능
- 각 열의 패턴과 함께 누적된 값이 어떻게 변화하는지 파악할 수 있음.
3.2. 막대 그래프
- 막대 그래프는 데이터 값의 크기에 비례하여 높이를 갖는 직사각형 막대로 표현
- 세로형 그래프의 경우 선 그래프와 정보 전달 측면에서 큰 차이 X
- 가로형 그래프의 경우 각 변수 사이 값의 크기 차이를 설명하는 데 적합
- 보통 값이 가장 큰 변수부터 내림차순 정렬하여 그래프를 그림.
4. 기타 그래프
4.1. 히스토그램
- 하나의 연속형 변수의 구간별 빈도수를 그래프로 표현
- 구간을 나누는 간격에 따라 빈도수가 달라지고 그래프의 모양이 변함
4.2. 산점도
- 서로 다른 두 연속형 변수 사이의 관계를 나타냄
4.3. 파이 차트
- 데이터 값의 크기에 따라 원의 조각을 나누어 표현
- 항목별 개수와 개별 항목이 전체에서 차지하는 비율을 표현할 때 많이 사용
4.4. 박스 플롯
- 박스 플롯은 연속형 데이터의 전반적인 분포를 확인하는데 적합
- 5가지 통계 지표를 하나로 시각화
- 최대값
- 최소값
- 중간값
- 1분위값
- 3분위값
- 5가지 통계 지표를 하나로 시각화
마무리
폰트 파일이 존재함에도 불구하고 정상적으로 인지하지 못하고 있다는 점이 궁금했음.
원리 자체는 어렵지 않았지만 익숙해질 필요성을 느낌.
각각 그래프의 용도 어떨 때 사용할 지 생각하고 그래프 작업을 할 필요성을 느낌
'IT > Python' 카테고리의 다른 글
[Python] 인공 신경 구현 실습하면서 느낀 주의점. (0) | 2023.05.03 |
---|---|
[데이터 시각화] Python-라이브러리 Seaborn 기초 내용 정리 (0) | 2023.03.31 |
[데이터 처리] Python-pandas 기초 공부 내용 정리(연산, 데이터프레임 구조,통계 추출, 데이터 입출력) (0) | 2023.03.31 |
[데이터 처리] Python pandas-기초 공부 내용 정리 (자료구조) (0) | 2023.03.31 |
[데이터 처리] Python-Numpy 라이브러리 기초 내용 정리 (0) | 2023.03.31 |
댓글