📊 Pandas를 활용한 데이터 시각화 (Matplotlib & Seaborn)
데이터를 분석할 때 숫자로만 보면 이해하기 어려운 경우가 많죠? 🤔
이럴 때 Matplotlib & Seaborn을 활용하면 데이터를 한눈에 이해할 수 있을거에요! 🎨📊
이번 글에서는 Pandas 데이터프레임을 활용하여 데이터 시각화를 쉽게 구현하는 방법을 살펴볼게요.
✅ 1. Matplotlib & Seaborn 소개
📌 Matplotlib이란?
Matplotlib은 Python에서 가장 기본적인 그래프 라이브러리로, 선 그래프, 막대 그래프, 히스토그램 등 다양한 차트를 그릴 수 있습니다.
📌 Matplotlib의 특징:
- 기본적인 그래프 그리기 가능
- 세부적인 커스터마이징 가능
- 대부분의 시각화 라이브러리의 기반이 됨
📌 Seaborn이란?
Seaborn은 Matplotlib을 기반으로 한 고급 시각화 라이브러리로, 통계적 데이터 시각화에 강점을 가집니다.
📌 Seaborn의 특징:
- 깔끔한 스타일 제공
- 통계적 데이터 분석을 위한 다양한 기능 내장
- Pandas 데이터프레임과 쉽게 연동 가능
👉 Matplotlib은 기본적인 차트를, Seaborn은 더욱 직관적이고 아름다운 차트를 그릴 때 사용하면 좋아요!
✅ 2. 라이브러리 설치 및 기본 설정
📌 필요한 라이브러리 설치
Matplotlib과 Seaborn이 설치되어 있지 않다면, 먼저 설치해야 합니다.
pip install matplotlib seaborn
📌 라이브러리 불러오기
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
✅ 그래프 스타일 설정 (Seaborn 스타일 적용)
sns.set_style("whitegrid") # 배경 스타일 설정
plt.rcParams["figure.figsize"] = (8, 6) # 기본 그래프 크기 설정
👉 이제 본격적으로 다양한 그래프를 그려볼까요? 🚀
✅ 3. Pandas 데이터 불러오기 및 기본 그래프
먼저 샘플 데이터를 생성해봅시다.
data = {
"이름": ["철수", "영희", "민수", "지훈", "나연"],
"국어": [80, 90, 85, 70, 95],
"수학": [75, 85, 80, 95, 90],
"영어": [85, 80, 90, 75, 70]
}
df = pd.DataFrame(data)
print(df)
✅ 출력 결과
이름 국어 수학 영어
0 철수 80 75 85
1 영희 90 85 80
2 민수 85 80 90
3 지훈 70 95 75
4 나연 95 90 70
✅ 4. 기본 그래프 그리기 (Matplotlib 활용)
📌 1) 막대 그래프 (Bar Chart)
plt.bar(df["이름"], df["국어"], color='blue')
plt.xlabel("이름")
plt.ylabel("국어 점수")
plt.title("학생별 국어 점수")
plt.show()
✅ 출력 결과 → 학생별 국어 점수 막대 그래프 🎯
📌 2) 선 그래프 (Line Chart)
plt.plot(df["이름"], df["수학"], marker='o', linestyle='-', color='red')
plt.xlabel("이름")
plt.ylabel("수학 점수")
plt.title("학생별 수학 점수 변화")
plt.show()
✅ 출력 결과 → 학생별 수학 점수 변화를 나타내는 선 그래프 📈
✅ 5. 고급 시각화 (Seaborn 활용)
📌 1) 히스토그램 (Histogram) → 데이터 분포 확인
sns.histplot(df["국어"], bins=5, kde=True)
plt.title("국어 점수 분포")
plt.show()
✅ 출력 결과 → 국어 점수의 분포를 보여주는 히스토그램 📊
📌 2) 상자 그림 (Box Plot) → 이상치(Outlier) 탐지
sns.boxplot(x=df["수학"])
plt.title("수학 점수 분포")
plt.show()
✅ 출력 결과 → 수학 점수의 이상치를 보여주는 상자 그림 📦
📌 3) 상관관계 히트맵 (Correlation Heatmap)
sns.heatmap(df.iloc[:, 1:].corr(), annot=True, cmap="coolwarm")
plt.title("과목별 점수 상관관계")
plt.show()
✅ 출력 결과 → 과목 간 점수의 상관관계를 보여주는 히트맵 🔥
✅ 6. 실전 연습 문제
✏️ 문제 1: 특정 학생의 성적 추이 선 그래프 그리기
📌 "민수"의 국어, 수학, 영어 점수를 선 그래프로 표현하세요.
plt.plot(["국어", "수학", "영어"], df[df["이름"] == "민수"].iloc[:, 1:].values.flatten(), marker='o')
plt.xlabel("과목")
plt.ylabel("점수")
plt.title("민수의 성적 변화")
plt.show()
✏️ 문제 2: 수학 점수 분포 히스토그램 그리기
📌 df["수학"] 데이터를 활용해 히스토그램을 그리세요.
sns.histplot(df["수학"], bins=4, kde=True)
plt.title("수학 점수 분포")
plt.show()
📢 7. 마무리 및 다음 학습
이 글에서는 Pandas 데이터를 시각화하는 다양한 방법을 배웠어요! 😊
(한글이 깨지는 부분은 다음 글에서 해결하는 방법을 알아볼게요!)
🔥 핵심 정리
✅ Matplotlib은 기본적인 그래프 그리기에 적합
✅ Seaborn은 고급 통계 시각화에 유용
✅ 데이터 시각화를 활용하면 패턴과 인사이트를 쉽게 파악할 수 있음
📌 다음 글에서는 "Matplotlib & Seaborn 고급 활용법 (다중 그래프, 애니메이션)" 내용을 알아볼게요!
'AI와 친해지기 > AI를 직접해볼까?' 카테고리의 다른 글
[Python기초] AI개발자를 위한 Pandas & Numpy 기초 (1) | 2025.02.16 |
---|---|
[Python기초] AI개발자를 위한 CSV 파일을 다루는 법 (2) | 2025.02.15 |
[Python기초] AI개발자를 위한 JSON 파일 다루기 (8) | 2025.02.14 |
[Python 기초] AI 개발자를 위한 파일 입출력(File I/O) 활용하기 (1) | 2025.02.13 |
[Python 기초] AI 개발자를 위한 클래스, 객체 지향 프로그래밍 (2) | 2025.02.12 |