데이터 분석

matplotlib 와 matplotlib.pyplot 차이

The Ohgorithm 2025. 10. 16. 22:12

🧱 1️⃣ matplotlib은 “도구 상자 전체”

 
import matplotlib as plt

 

→ 이건 도구 상자 전체를 불러온 거예요.
하지만 이 안에는 여러 종류의 하위 도구들이 들어있어요.
예를 들어:

  • matplotlib.pyplot : 그래프를 그리는 도구
  • matplotlib.colors : 색상 관련 도구
  • matplotlib.font_manager : 글꼴 관리 도구
    즉, 전체 패키지를 가져왔지만, 그래프를 그릴 도구(붓) 는 꺼내지 않은 상태예요.

그래서 아래처럼 쓰면 오류가 납니다:

import matplotlib as plt
plt.plot([1, 2, 3])  # ❌ plot()은 없음

 


🎨 2️⃣ matplotlib.pyplot은 “그래프 그리는 하위 도구”

 
import matplotlib.pyplot as plt

→ 이건 “도구 상자 중 그래프 그리는 부분만 꺼내서 쓰겠다”는 뜻이에요.
즉, 붓만 손에 쥔 거예요 🎨

이제 이렇게 쓸 수 있습니다:

 
plt.plot([1, 2, 3])
plt.show()

→ ✅ 정상 작동! 그래프가 화면에 나옵니다.


⚙️ 3️⃣ 그림으로 보면 이렇게 돼요

 
matplotlib
 ├── pyplot          ← 그래프 그리기용 도구
 ├── colors
 ├── font_manager
 └── ...
  • import matplotlib as plt → “matplotlib 전체”
    → 도구상자만 열었지, 아직 어떤 도구를 쓸지 지정 안 함
  • import matplotlib.pyplot as plt → “pyplot 부분만 가져오기”
    → 그래프용 도구를 직접 꺼내 사용 가능

✨ 요약

구분 설명 사용 가능 함수
import matplotlib as plt 전체 패키지(도구상자) 불러옴 X (plot() 등 불가)
import matplotlib.pyplot as plt 그래프용 모듈만 불러옴 ✅ plot(), show(), bar() 등 가능

__________________________________________________________

✅ 1️⃣ import matplotlib as plt

  • 이건 matplotlib 전체 패키지를 plt라는 이름으로 불러오는 거예요.
  • 하지만 matplotlib는 상위 모듈이라, 이 상태에서는 바로 그래프를 그릴 수 없습니다.
import matplotlib as plt

plt.plot([1, 2, 3], [4, 5, 6])  # ❌ 오류남
 

matplotlib는 큰 패키지고, 실제 그래프를 그리는 기능은 그 안의 **하위 모듈 pyplot**에 들어 있습니다.
즉, matplotlib.plot()은 존재하지 않아요.


✅ 2️⃣ import matplotlib.pyplot as plt

  • 이게 우리가 흔히 쓰는 정상적인 방식입니다.
  • matplotlib.pyplot은 실제로 그래프를 그리는 함수들이 들어 있는 모듈이에요.
 
import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [4, 5, 6])  # ✅ 정상 작동
plt.show()

⚙️ 3️⃣ 차이 정리표

 

구분 import matplotlib as plt import matplotlib.pyplot as plt
불러오는 범위 matplotlib 패키지 전체 matplotlib의 하위 모듈 pyplot
사용 가능 함수 없음 (그래프 불가) plot(), show(), scatter() 등 그래프 함수 사용 가능
주 용도 패키지 버전 확인, 설정 그래프 그리기
예시 plt.__version__ plt.plot(x, y)

✨ 결론

👉 matplotlib는 “그래프 도구상자 전체”,
👉 matplotlib.pyplot은 “그래프를 실제로 그리는 도구 모음”이에요.
그래서 **그래프를 그릴 땐 반드시 import matplotlib.pyplot as plt**를 써야 합니다.