데이터분석 테스트를 위한 Matplotlib & Seaborn 치팅시트

TrainToGPB·2024년 10월 5일
0

Cheat Sheet

목록 보기
4/4
post-thumbnail

취준을 하다보면 가끔 closed book으로 데이터 분석 테스트를 요구하는 회사들이 있다.
그런 테스트를 대비하기 위한 주요 패키지들의 빈출 함수 및 메서드에 대한 치팅시트를 만들어 보았다.
물론 직접 만들지는 않았고, ChatGPT-o1이 만들어줬으니 사용하실 분들은 얼마든지 사용하시길!


Matplotlib과 Seaborn 치트 시트: 데이터 시각화를 위한 필수 기능


📊 Matplotlib

📈 기본 플롯 그리기

import matplotlib.pyplot as plt

# 선 그래프
plt.plot(x, y)
plt.show()

# 산점도
plt.scatter(x, y)
plt.show()

# 막대 그래프
plt.bar(x, y)
plt.show()

# 히스토그램
plt.hist(data, bins=10)
plt.show()

🛠 그래프 커스터마이징

# 제목 및 레이블 추가
plt.title('그래프 제목')
plt.xlabel('X축 레이블')
plt.ylabel('Y축 레이블')

# 선 스타일 변경
plt.plot(x, y, color='red', linestyle='--', marker='o')

# 범례 추가
plt.legend(['레이블1', '레이블2'])

# 축 범위 설정
plt.xlim(최소값, 최대값)
plt.ylim(최소값, 최대값)

📐 여러 그래프 그리기

한 그래프에 여러 선 그리기

plt.plot(x1, y1, label='데이터1')
plt.plot(x2, y2, label='데이터2')
plt.legend()
plt.show()

서브플롯 사용

# 2행 1열의 서브플롯 생성
plt.subplot(2, 1, 1)
plt.plot(x1, y1)
plt.title('첫 번째 그래프')

plt.subplot(2, 1, 2)
plt.plot(x2, y2)
plt.title('두 번째 그래프')

plt.tight_layout()
plt.show()

🌈 색상 및 스타일

# 색상 변경
plt.plot(x, y, color='green')

# 마커 스타일 변경
plt.plot(x, y, marker='^')

# 선 두께 변경
plt.plot(x, y, linewidth=2)

# 스타일 지정자 사용
plt.plot(x, y, 'ro--')  # 빨간색 원 마커와 점선

📏 그래프 저장

plt.savefig('그래프.png', dpi=300, bbox_inches='tight')

🐳 Seaborn

import seaborn as sns
import matplotlib.pyplot as plt

# 데이터셋 로드 (예: 타이타닉 데이터셋)
df = sns.load_dataset('titanic')

📊 기초 시각화

히스토그램 및 커널 밀도 추정

# 히스토그램
sns.histplot(data=df, x='age', bins=20)
plt.show()

# 커널 밀도 그래프
sns.kdeplot(data=df, x='age', shade=True)
plt.show()

막대 그래프

sns.barplot(data=df, x='sex', y='survived')
plt.show()

박스플롯

sns.boxplot(data=df, x='class', y='age')
plt.show()

바이올린 플롯

sns.violinplot(data=df, x='class', y='age', hue='sex', split=True)
plt.show()

📈 관계 시각화

산점도

sns.scatterplot(data=df, x='age', y='fare', hue='sex')
plt.show()

선형 회귀선이 있는 산점도

sns.lmplot(data=df, x='age', y='fare', hue='sex')
plt.show()

📚 분포 시각화

페어플롯

sns.pairplot(df[['age', 'fare', 'pclass']])
plt.show()

히트맵 (상관관계)

corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()

🛠 스타일 및 설정

Seaborn 스타일 설정

sns.set_style('whitegrid')  # 다른 옵션: darkgrid, white, dark, ticks

팔레트 설정

sns.set_palette('pastel')  # 다른 옵션: deep, muted, bright, dark, colorblind

도면 크기 조정

plt.figure(figsize=(10, 6))

📏 축성 조정 및 레이블

# 축 레이블 및 제목 추가
plt.title('그래프 제목')
plt.xlabel('X축 레이블')
plt.ylabel('Y축 레이블')

# 축 범위 설정
plt.xlim(최소값, 최대값)
plt.ylim(최소값, 최대값)

🧰 그리드 다루기

FacetGrid를 사용한 멀티플롯

g = sns.FacetGrid(df, col='sex', row='survived')
g.map(plt.hist, 'age')
plt.show()

조인트 플롯

sns.jointplot(data=df, x='age', y='fare', kind='scatter')
plt.show()

🔗 Matplotlib과 Seaborn 함께 사용하기

  • Seaborn은 Matplotlib 위에 구축되어 있으며, 두 라이브러리를 함께 사용할 수 있습니다.
  • Seaborn으로 그래프를 그린 후 Matplotlib의 기능을 사용하여 추가적인 커스터마이징이 가능합니다.
sns.barplot(data=df, x='sex', y='survived')
plt.title('성별에 따른 생존율')
plt.xlabel('성별')
plt.ylabel('생존율')
plt.show()

📌 유용한 팁

  • 그래프 커스터마이징: plt.rcParams를 사용하여 전역적인 설정을 변경할 수 있습니다.
  • 한글 폰트 설정: matplotlib에서 한글이 깨질 경우 폰트를 설정해야 합니다.
# 한글 폰트 설정 예시
plt.rcParams['font.family'] = 'Malgun Gothic'  # Windows의 경우
plt.rcParams['font.family'] = 'AppleGothic'    # macOS의 경우
plt.rcParams['axes.unicode_minus'] = False     # 마이너스 기호 깨짐 방지
  • 경고 메시지 무시: 필요에 따라 경고 메시지를 무시할 수 있습니다.
import warnings
warnings.filterwarnings('ignore')

이 치트 시트는 데이터 시각화에서 자주 사용되는 Matplotlib과 Seaborn의 핵심 기능들을 요약한 것입니다. 효과적인 시각화를 통해 데이터의 인사이트를 도출하세요. 성공을 기원합니다! 🚀

profile
J의 틀에 몸을 녹여 맞추는 P

0개의 댓글