Python to AI

Python - Matplotlib

최 수빈 2024. 12. 30. 14:12

 

Matplotlib

 

math+plot+library

다양한 유형의 그래프와 차트 생성, 데이터를 시각적으로 표현해 분석과 공유를 더 쉽게 만들어주는 데이터 시각화 라이브러리

 

 

지원 그래프

 

 선 그래프(Line Plot) : 시간에 따른 데이터 추세 분석

 산점도(Scatter Plot) : 두 변수 간의 관계를 나타냄

 막대 그래프(Bar Chart) : 카테고리별 데이터를 비교

 히스토그램(Histogram) : 데이터의 분포를 나타냄

 파이 차트(Pie Chart) : 비율을 강조하는 데 적합

박스 플롯(Box Plot) : 데이터의 범위, 중앙값, 이상치 시각화

면적 그래프(Area Plot) : 여러 범주의 누적 데이터 시각화

스택 막대 그래프(Stacked Bar Chart) : 카테고리별 데이터 누적 비교

 3D 플롯(3D Plot) : 3차원 데이터 시각화

밀도 그래프(Density Plot) : 데이터 밀도 추정

분포도(Violin Plot) : 데이터의 분포와 밀도 동시에 시각화

스펙트럼 그래프(Spectrogram) : 신호 데이터를 주파수로 변환하여 시각화

 

 

세부 조정

 축, 제목, 범례, 레이블 등 그래프 요소를 커스터마이즈할 수 있음

 스타일과 색상, 라인 유형 등을 세밀하게 설정 가능

 

지원 출력 포맷

PDF, PNG, SVG 등

Jupyter Notebook, GUI창, 웹 등 다양한 환경에서 사용 가능

 

통합 가능 라이브러리

Pandas, NumPy와 같은 데이터 분석 라이브러리와 쉽게 통합 가능

 

 

 

 

설치

pip install matplotlib

 

라인그래프 생성

plt.plot(x축 값들, y축 값들)

 

그래프 크기 설정

plt.figure(figsize = (가로사이즈, 세로사이즈))

 

그래프 제목 설정

plt.title("제목")

 

import matplotlib.pyplot as plt

# 데이터 정의
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 그래프 생성
plt.plot(x, y, label="Prime Numbers", color='blue', linestyle='--', marker='o')

# 그래프 제목 및 레이블
plt.title("Sample Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()

# 그래프 표시
plt.show()

 

 

스타일 설정

Matplotlib은 기본 스타일 외에도 seaborn, ggplot 등 여러 스타일을 제공

plt.style.use('ggplot')  # 스타일 설정

 

 

 

 

고급 기능

 

서브플롯(Subplots)

하나의 그림에 여러 그래프를 표시

 

fig, ax = plt.subplots(2, 1)  # 2행 1열의 서브플롯
ax[0].plot(x, y, color="red")
ax[1].scatter(x, y, color="green")
plt.show()

 

 

3D 플롯

mpl_toolkits.mplot3d를 사용해 3D 그래프 생성

 

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter([1, 2, 3], [4, 5, 6], [7, 8, 9])
plt.show()

 

 

한글 폰트 지원

 

Matplotlib은 기본적으로 한글을 지원하지 않기 때문에 폰트를 설정해야 함

 

import matplotlib.pyplot as plt
from matplotlib import rc

rc('font', family='Malgun Gothic')  # Windows
# rc('font', family='AppleGothic')  # macOS
plt.rcParams['axes.unicode_minus'] = False  # 마이너스 기호 깨짐 방지

plt.title("한글 지원 그래프")
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()

 

 

 

--------------------options.

 

 

matplotlib 한글폰트 커스텀컨피그

 

사용자 설정파일 만들기

 

 

koreanize-matplotlib 설치

import koreanize_matplotlib  # 설치 후 바로 적용
import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [4, 5, 6])
plt.title("한글이 포함된 그래프")
plt.show()

 

 

 


 https://matplotlib.org/

 

 

'Python to AI' 카테고리의 다른 글

Scikit-learn  (2) 2024.12.26
Anaconda  (3) 2024.12.26
AI/ML/DL  (3) 2024.12.24
Python - Pandas(데이터 프레임 구조 재조정)  (3) 2024.12.18
Machine learning Vol.2  (7) 2024.12.17