1. Matplotlib
- Description: Matplotlib은 Python에서 데이터를 시각화하기 위한 가장 기본적이고 널리 사용되는 라이브러리입니다. 세부적인 커스터마이징이 가능하며, 2D 그래프를 그리는 데 주로 사용됩니다.
- 장점:
- 완벽한 제어 가능 (축, 라벨, 색상, 선 스타일 등).
- 다양한 플롯 유형 지원 (라인 플롯, 바 플롯, 히스토그램, 산점도 등).
- Seaborn과 같은 고수준 라이브러리의 기반 역할.
- 단점:
- 복잡한 플롯은 코드가 길어질 수 있음.
- 기본 디자인이 단순해서 시각적으로 매력적이지 않을 수 있음.
import matplotlib.pyplot as plt
# 샘플 데이터
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 라인 플롯
plt.plot(x, y, label='Prime numbers')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Line Plot Example')
plt.legend()
plt.show()
2. Seaborn
- Description: Seaborn은 Matplotlib 기반으로 만들어진 고수준 시각화 라이브러리입니다. 통계적 데이터 시각화에 특화되어 있으며, 기본적으로 아름답고 깔끔한 스타일을 제공합니다.
- 장점:
- 복잡한 그래프를 간단한 코드로 생성 가능.
- 통계적 플롯 (히트맵, 페어플롯, 카운트플롯 등) 지원.
- 데이터프레임과 쉽게 통합 가능.
- 단점:
- 세부적인 커스터마이징은 Matplotlib에 비해 제한적일 수 있음.
- 인터랙티브 기능 부족.
import seaborn as sns
import matplotlib.pyplot as plt
# 샘플 데이터
tips = sns.load_dataset("tips")
# 박스 플롯
sns.boxplot(x="day", y="total_bill", data=tips, palette="coolwarm")
plt.title("Box Plot Example")
plt.show()
3. Plotly
- Description: Plotly는 웹 기반의 인터랙티브 시각화를 제공하는 라이브러리입니다. Plotly Express는 간단한 코드로 인터랙티브 그래프를 생성할 수 있으며, HTML, Jupyter Notebook 등 다양한 환경에서 활용할 수 있습니다.
- 장점:
- 인터랙티브 그래프 지원 (줌, 팬, 호버 기능).
- 3D 플롯과 지도 기반 시각화 지원.
- 기본적으로 세련되고 시각적으로 매력적인 그래프 제공.
- 단점:
- 일부 고급 기능은 유료 플랜에서 제공됨.
- Matplotlib/Seaborn에 비해 학습 곡선이 있을 수 있음.
import plotly.express as px
import pandas as pd
# 샘플 데이터
df = pd.DataFrame({
"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
"Amount": [10, 20, 30, 40, 50, 60],
"City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})
# 바 차트 생성
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
fig.show()
특징 |
Matplotlib |
Seaborn |
Plotly |
난이도 |
중간 |
쉬움 |
쉬움 ~ 중간 |
커스터마이징 |
매우 높음 |
중간 |
중간 ~ 높음 |
인터랙티브 |
없음 |
없음 |
있음 |
시각적 매력 |
기본적 |
높은 수준 |
매우 높은 수준 |
사용 목적 |
기본 시각화, 커스터마이징 |
통계적 데이터 시각화 |
대화형 그래프, 웹/대시보드 통합 |