| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 객체지향
- LangGraph
- CNN
- Python
- 소프트웨어 개발
- 데이터 시각화
- 딥러닝
- TTS
- 힙정렬
- SQL
- 트랜스포머
- python기초
- 알고리즘
- 에이전트
- 기초
- 캐글
- ASR
- 랭그래프
- dementional reduction
- 자연어처리
- CLIP
- RNN
- 머신러닝
- Transformer
- 데이터엔지니어
- 정보처리기사
- RDBMS
- UMAP
- 생성형 인공지능
- python 기초
Archives
- Today
- Total
수달이네 기술 블로그
3. matplot 본문
Matplotlib은 파이썬에서 데이터를 시각화하는데 널리 사용되는 라이브러리
- 다양한 그래프, 차트를 그릴 수 있다.
- 단점
- 한글을 이해하지 못한다.(한글 폰트 설치후 폰트를 사용해야 한다.
구조
- Figure: 전체 그림(도화지)
- Axes: 하나의 서브 그래프 (보통 x축, y축 포함)
- Axis: x축과 y축 자체
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
plt.plot([5,6,7,8],[1,2,3,4])
plt.show()


- 리스트의 값들은 y축에 관한 값이며, x축은 자동으로 입력된다.
import numpy as np
data1 = np.arange(1,100)
data2 = np.arange(50, 150)
plt.plot(data1)
plt.plot(data2)
plt.show()

- 연속으로 쌓이는 방식이다.
| 선 그래프 | plt.plot() | 연속적인 데이터 추세 |
| 막대 그래프 | plt.bar() | 범주형 데이터 비교 |
| 수평 막대 | plt.barh() | 막대를 가로로 |
| 산점도 | plt.scatter() | 두 변수의 관계 시각화 |
| 히스토그램 | plt.hist() | 분포 시각화 |
| 파이 차트 | plt.pie() | 비율 표현 |
style옵션
# 한글 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()
figure(figsize = 4,5))
- 가로 4인치 세로 5인치의 그래프를 그린다.
plt.plot
- 그리기
plt.title(’제목’, fontsize=30)
- 제목을 띄워줌
plt.xlabel('X축', fontsize=20) plt.ylabel('Y축', fontsize=20, rotation=0)
- x축 이름과 y축 이름을 설정한다, rotation은 글자의 회전
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.savefig('my_plot.png') # 그래프를 이미지로 저장
plt.show()

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)
- 범례를 설정하는 부분
- plot의 순서대로 범례를 설정해줄 수 있다.
plt.xlim(0, 12)
plt.ylim(0, 30)
x축제한, y축제한을 만들어주는 코드
plt.xticks(rotation=30)
plt.yticks(rotation=30)
- 글자를 돌려줄 수 있다.
plt.savefig('my_plot.png')
- 그림을 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()

- bar는 위처럼 bar그래프를 만들어줄 수 있으며
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()

- barh는 바그래프를 눕힐 수 있다.
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()

- xticks를 index의 length를 맞춰 줄 수도 있다.
- tight_layout은 자동으로 바 사이를 정리해준다.
'AI공부 > 머신러닝' 카테고리의 다른 글
| 5. selenium을 이용한 크롤링 (1) | 2025.11.26 |
|---|---|
| 4. 공공 데이터셋 가져오기 (0) | 2025.11.26 |
| 참고) 머신러닝/딥러닝 모델별 장단점 표 (0) | 2025.11.25 |
| 2. Pandas (1) | 2025.11.17 |
| 1. numpy (0) | 2025.11.12 |