Matplotlib

2024. 12. 19. 00:52LLM(Large Language Model)의 기초

1. Matplotlib
* Matplotlib은 파이썬에서 데이터를 시각화하는 데 널리 사용되는 강력한 라이브러리입니다.
* 다양한 그래프와 차트를 그릴 수 있으며, 선 그래프, 막대그래프, 히스토그램, 산점도 등 기본적인 그래프부터 복잡한 3D 플롯까지 지원합니다.
* 사용법이 비교적 간단하고, 커스터마이징이 가능하여 데이터의 패턴과 트렌드를 효과적으로 표현할 수 있습니다.
* 또한, NumPy와 Pandas와 같은 데이터 분석 라이브러리와 잘 통합되어 데이터 과학, 머신러닝, 통계 등 다양한 분야에서 활용됩니다.
* Matplotlib의 기본 모듈인 pyplot은 MATLAB과 유사한 인터페이스를 제공해 초보자도 쉽게 사용할 수 있도록 설계되었습니다.

 

> 공식 사이트 : https://matplotlib.org/

 

Matplotlib — Visualization with Python

seaborn Cartopy DNA Features Viewer plotnine WCS Axes seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data

matplotlib.org

 

1. Matplotlib 설치

!pip install matplotlib

 

2. Matplotlib를 import 해줌

import matplotlib.pyplot as plt

 

 

예시 1)

plt.plot([1, 2, 3, 4]) # 리스트의 값들은 y 값들이며, x 값은 자동으로 만들어 줌
plt.show()

-->

 

예시 2)

plt.plot([1, 2, 3, 4], [1, 2, 3, 4]) # x축,y축 1,2,3,4 로 설정
plt.show()

-->

 

numpy를 import 해준다

import numpy as np

 

예시 3)

import numpy as np
import matplotlib.pyplot as plt

data = np.arange(1, 100) # 1부터 99까지의 숫자 생성
plt.plot(data) # 선 그래프 그리기
plt.show()  # 그래프 보여주기

-->

 

예시 4)

import numpy as np
import matplotlib.pyplot as plt

data1 = np.arange(1, 50) # 첫 번째 데이터 생성 및 그래프 그리기
plt.plot(data1)

data2 = np.arange(50, 100) # 두 번째 데이터 생성 및 그래프 그리기
plt.plot(data2)
plt.show()

-->

 

예시 5)

# 여러개의 plot을 그리는 방법
# subplot(행개수, 열개수, plot번호)
data1 = np.arange(1, 50) # 1부터 49까지의 데이터
plt.subplot(2, 1, 1) # 그래프를 2행 1열로 나눈 뒤, 첫 번째 영역(위쪽)에 플롯을 그리겠다는 의미
plt.plot(data1)      # data1을 첫 번째 영역에 플롯

data2 = np.arange(50, 100) # 50부터 99까지의 데이터
plt.subplot(2, 1, 2)       # 두 번째 영역(아래쪽)에 플롯을 그리겠다는 의미
plt.plot(data2)            # data2를 두 번째 영역에 플롯

plt.show() # 데이터를 보여줌

-->

 

2. 스타일 옵션

 

한글 fonts-nanum 설치 후 --> 런타임 - 세션 다시 시작 및 모두 실행해야 한다.

# 한글 fonts-nanum 설치 후 --> 런타임 - 세션 다시시작 및 모두 실행 해야한다 .
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

plt.rc('font', family='NanumBarunGothic')

 

예시 1)

plt.figure(figsize=(4, 5))        #  너비 4인치, 높이 5인치의 그래프를 생성
plt.plot([1, 2, 3], [1, 2, 3] )   #  X축과 Y축의 데이터를 각각 [1, 2, 3]으로 설정하여 직선을 그림
plt.title('제목', fontsize=30)    #  그래프의 제목을 설정하고, 글자 크기를 30포인트로 지정
plt.xlabel('x축', fontsize=20)    #  X축 라벨을 설정하고, 글자 크기를 20포인트로 지정
plt.ylabel('Y축', fontsize=20, rotation=0) # Y축 라벨을 설정하고, 글자 크기를 20포인트로 지정, 
                                           # rotation=0: Y축 라벨을 회전하지 않고 가로 방향으로 표시
plt.show()

-->

 

예시 2)

plt.figure(figsize=(15, 10))  # 너비 15인치, 높이 10인치의 그래프를 생성
plt.title('마커설정', fontsize=30) # 그래프의 제목을 설정하고 글자 크기를 30포인트로 

#X, Y 데이터: np.arange(10) (0부터 9까지).
#색상: 'deepskyblue'
#마커: 'o' (동그라미)
#라인 스타일: '-.' (점선과 실선 혼합)
plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle='-.')

#Y 데이터: np.arange(10) * 2 (0부터 18까지 2배 증가)
#색상: 'deeppink'
#마커: 'v' (역삼각형)
#라인 스타일: '--' (점선)
plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v', linestyle='--')

#Y 데이터: np.arange(10) * 3 (0부터 27까지 3배 증가)
#색상: 'gold'
#마커: '*' (별표)
#마커 크기: ms=10
#라인 스타일: '' (선 없음)
plt.plot(np.arange(10), np.arange(10)*3, color='gold', marker='*', ms=10, linestyle='')

#범례 항목: '10', '10*2', '10*3'
#글자 크기: 15포인트
#위치: 오른쪽 아래 ('lower right')
#열 수: 3개 (ncol=3)
# 범례
plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3)

# 축 범위 설정
plt.xlim(0, 12) # X축 범위: 0부터 12까지
plt.ylim(0, 30) # Y축 범위: 0부터 30까지

#눈금 회전 설정
plt.xticks(rotation=30) # X축 눈금을 30도 회전
plt.yticks(rotation=30)  #Y축 눈금을 30도 회전
plt.show()

-->

 

예시 3)

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))          # 그래프의 크기를 너비 8인치, 높이 5인치로 설정
plt.title('AI 성적표', fontsize=25) # 그래프의 제목을 설정하고 글자 크기를 25포인트로 지정
plt.ylabel('수강생 점수')           # Y축의 라벨을 수강생 점수로 설정

# X축 값: x (과목 이름)
# Y축 값: y (점수)
# 투명도: alpha=0.5 (반투명)
# 색상: 'deeppink'
plt.bar(x, y, alpha=0.5, color='deeppink') 
plt.show()

-->

 

예시 4)

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))           # 그래프의 크기를 너비 8인치, 높이 5인치로 설정
plt.title('AI 성적표', fontsize=25)   # 그래프의 제목을 설정하고 글자 크기를 25포인트로 지정
plt.xlabel('수강생 점수')             # X축 라벨을 수강생 점수로 설정

#수평 막대 그래프를 그립니다:
#X축 값: y (점수)
#Y축 값: x (과목 이름)
#투명도: alpha=0.5 (반투명)
#색상: 'deepskyblue'
plt.barh(x, y, alpha=0.5, color='deepskyblue') # 옆으로 그려준다
plt.show()

 

예시 5)

import pandas as pd

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
df = pd.DataFrame({"과목":x, "점수":y}) # 딕셔너리를 사용하여 과목과 점수를 열로 하는 데이터프레임을 생성
# figure(fig) : 전체 그래프가 그려질 캔버스 역활
# Axes(ax) : 실제 데이터가 그려지는 부분

#fig: 전체 그래프가 그려질 캔버스(도화지) 역할을 하는 Figure 객체.
#ax: 실제 데이터가 그려지는 부분인 Axes 객체.
#figsize=(5, 4): 그래프의 크기를 너비 5인치, 높이 4인치로 설정
fig, ax = plt.subplots(figsize=(5, 4))
ax.bar(df["과목"], df["점수"])  #X축: df["과목"] (과목 이름), Y축: df["점수"] (점수)로 막대 그래프를 그림
ax.set_xlabel("과목", fontsize=12)  # X축 라벨을 설정하고 글자 크기를 12포인트로 지정
ax.set_ylabel("점수", fontsize=12)  # Y축 라벨을 설정하고 글자 크기를 12포인트로 지정
ax.set_title("코리아 학생 점수", fontsize=20) # 그래프 제목을 설정하고 글자 크기를 20포인트로 지정
ax.set_xticks(range(len(df.index))) # X축 눈금 위치를 데이터프레임의 인덱스 길이에 맞춰 설정
plt.tight_layout()                  # 그래프 요소들이 겹치지 않도록 레이아웃을 자동으로 조정
plt.show()

-->

728x90
LIST

'LLM(Large Language Model)의 기초' 카테고리의 다른 글

6.서울시 공공자전거 실시간 대여정보  (0) 2024.12.23
5. 상권_데이터셋  (6) 2024.12.19
4. Online Retail 데이터셋  (1) 2024.12.18
판다스(Pandas) 2  (4) 2024.12.18
1. 판다스(Pandas)  (2) 2024.12.17