1. Matplotlib
Matplotlib은 파이썬에서 데이터를 시각화하는 데 널리 사용되는 강력한 라이브러리입니다. 다양한 그래프와 차트를 그릴 수 있으며, 선 그래프, 막대 그래프, 히스토그램, 산점도 등 기본적인 그래프부터 복잡한 3D 플롯까지 지원합니다. 사용법이 비교적 간단하고, 커스터마이징이 가능하여 데이터의 패턴과 트렌드를 효과적으로 표현할 수 있습니다. 또한, NumPy와 Pandas와 같은 데이터 분석 라이브러리와 잘 통합되어 데이터 과학, 머신러닝, 통계 등 다양한 분야에서 활용됩니다. Matplotlib의 기본 모듈인 pyplot은 MATLAB과 유사한 인터페이스를 제공해 초보자도 쉽게 사용할 수 있도록 설계되었습니다.
pip install matplotlib
1. 기본 구조
- Figure: 전체 그림 (도화지)
- Axes: 하나의 서브 그래프 (보통 x축, y축 포함)
- Axis: x축과 y축 자체
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4]) # 리스트의 값들은 y값들이며, x값은 자동으로 만들어줌
plt.show()
plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.show()
import numpy as np
data = np.arange(1, 100)
plt.plot(data)
plt.show()
data1 = np.arange(1, 50)
plt.plot(data1)
data2 = np.arange(50, 100)
plt.plot(data2)
plt.show()
| 선 그래프 | plt.plot() | 연속적인 데이터 추세 |
| 막대 그래프 | plt.bar() | 범주형 데이터 비교 |
| 수평 막대 | plt.barh() | 막대를 가로로 |
| 산점도 | plt.scatter() | 두 변수의 관계 시각화 |
| 히스토그램 | plt.hist() | 분포 시각화 |
| 파이 차트 | plt.pie() | 비율 표현 |
2. 스타일 옵션
# 한글 fonts-nanum 설치
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
plt.rc('font', family='NanumBarunGothic')
plt.figure(figsize=(4, 5)) # inch
plt.plot([1, 2, 3], [1, 2, 3])
plt.title('제목', fontsize=30)
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20, rotation=0)
plt.show()
plt.figure(figsize=(15, 10))
plt.title('마커설정', fontsize=30)
plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle='-.')
plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v', linestyle='--')
plt.plot(np.arange(10), np.arange(10)*3, color='gold', marker='*', ms=10, linestyle='')
# 범례
# 기본 위치는 왼쪽 상단
plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3)
plt.xlim(0, 12)
plt.ylim(0, 30)
plt.xticks(rotation=30)
plt.yticks(rotation=30)
plt.show()
plt.savefig('my_plot.png') # 그래프를 이미지로 저장
x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI 성적표', fontsize=25)
plt.ylabel('수강생 점수')
plt.bar(x, y, alpha=0.5, color='deeppink')
plt.show()
x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI 성적표', fontsize=25)
plt.xlabel('수강생 점수')
plt.barh(x, y, alpha=0.5, color='deepskyblue')
plt.show()
import pandas as pd
x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
df = pd.DataFrame({"과목":x, "점수":y})
fig, ax = plt.subplots(figsize=(5, 4))
ax.bar(df["과목"], df["점수"])
ax.set_xlabel("과목", fontsize=12)
ax.set_ylabel("점수", fontsize=12)
ax.set_title("코리아 학생 점수", fontsize=20)
ax.set_xticks(range(len(df.index)))
plt.tight_layout() # 레이아웃이 겹치지 않도록 자동으로 정리해주는 함수
plt.show()'인공지능 > 데이터 분석' 카테고리의 다른 글
| 머신러닝 (0) | 2025.07.22 |
|---|---|
| 커피 프랜차이즈의 입점전략 (2) | 2025.07.22 |
| 서울시 공공자전거 실시간 대여정보 (3) | 2025.07.22 |
| 소상공인시장진흥공단_상가정보 데이터셋 (1) | 2025.07.21 |
| Online Retail 데이터셋 살펴보기 (1) | 2025.07.21 |