반응형
Chapter 03. 데이터 시각화를 위한 matplotlib과 seaborn
Matplotlib 기초
1. Matplotlib란?
- 데이터 시각화 라이브러리로 다양한 그래프와 도형 지원
- 특징
- 다양한 포맷 지원 (PNG, PDF, SVG 등)
- 다른 라이브러리와 호환성 높음 (seaborn, pandas 등)
- 상태 기반 인터페이스(pyplot)와 객체 지향 인터페이스 모두 제공
- 축, 레이블, 스타일 등 세부 요소까지 고급 커스터마이징 가능
- pyplot 모듈
- 간단한 그래프 작성에 사용
- 주요 함수: plot(), bar(), scatter(), title(), xlabel(), ylabel(), legend(), show(), savefig()
2. 간단한 그래프 그리기
Matplotlib의 그래프는 여러 요소(축, 제목, 범례, 눈금 등)로 구성되며, 함수로 요소를 추가하고 조정할 수 있습니다.
- plot 함수: 선 그래프를 그리는 기본 함수
plt.plot([1,2,3,5], [2,3,4,3])
plt.show()
- title: 그래프 제목 추가 (plt.title())
- xlabel, ylabel: 축 이름 지정 (plt.xlabel(), plt.ylabel())
- legend: 범례 표시 (plt.legend(loc='upper left'))
- xticks, yticks: 눈금 위치와 값 설정 (plt.xticks(), plt.yticks())
- savefig: 그래프 저장 (plt.savefig('file.png', dpi=150))
- 여러 선 그리기: plot()을 여러 번 호출하여 같은 Figure에 여러 그래프 표현 가능
3. 객체 지향 방식
Matplotlib은 상태 기반 방식과 객체 지향 방식을 모두 지원합니다.
- 상태 기반 방식: pyplot 모듈로 간단히 작성 (빠르고 직관적)
- 객체 지향 방식: Figure와 Axes 객체를 직접 다루어 복잡한 그래프 작성에 적합
주요 개념:
- Figure: 전체 그래프 영역
- Axes: 실제 그래프가 그려지는 영역
- plt.figure(): Figure 객체 생성
- plt.subplots(): Figure와 Axes 동시 생성 (서브플롯 활용)
- ax.set_title(), ax.set_xlabel(), ax.legend() 등으로 개별 속성 제어
- tight_layout()으로 서브플롯 간 간격 자동 조정
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 단순히 그래프를 그리는 것에서 그치지 않고, Matplotlib이 가진 두 가지 접근 방식(상태 기반 vs 객체 지향)을 비교하며 각각의 장단점을 이해할 수 있었다. 상태 기반 방식은 빠르게 결과를 확인할 때 유용하지만, 프로젝트에서 복잡한 시각화를 할 때는 객체 지향 방식이 훨씬 구조적이고 유지보수에도 적합하다는 점이 인상 깊었다.
또한 legend, xlabel, ylabel, xticks 같은 요소들이 단순히 꾸밈 요소가 아니라, 데이터를 정확하게 전달하기 위한 필수 구성 요소라는 것도 다시금 느꼈다. 특히 시각화는 데이터 분석 결과를 직관적으로 보여주는 핵심 단계이기 때문에, 단순히 코드만 돌리는 것이 아니라 그래프의 가독성과 전달력까지 고려해야 한다는 점을 배웠다.
🚀 적용점
- plot(), bar(), scatter()를 이용해 동일한 데이터셋을 여러 방식으로 시각화하여 비교 실습하기
- legend, xlabel, ylabel, title을 적극 활용해 가독성 높은 그래프 제작하기
- savefig()를 이용해 그래프를 PNG, PDF 등 다양한 형식으로 저장해보며 출력물 활용법 익히기
- plt.subplots()로 여러 개의 서브플롯을 만들어 복합적인 데이터 시각화 연습하기
- 객체 지향 방식으로 작성한 코드와 상태 기반 방식 코드를 비교하면서 상황별 장단점을 체득하기
👉 앞으로 이어질 강의에서는 Seaborn과 같은 고급 시각화 라이브러리도 다루게 되므로, 이번에 배운 Matplotlib 기초를 확실히 익히는 것이 중요하다.
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 03-3 (0) | 2025.09.30 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 03-2 (0) | 2025.09.28 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-6 (0) | 2025.09.26 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-5 (0) | 2025.09.25 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-4 (0) | 2025.09.24 |