티스토리 뷰

학습목표:
라이브러리의 개념을 익히고 외부 라이브러리를 설치 할 수 있다.
다양한 외부 라이브러리를 익히고 프로그램에 사용 해 본다.

1.라이브러리 개념

  • 라이브러리(library)는 도서관이라는 말 뜻대로 다양한 함수가 모인 곳
  • 즉 특정 작업을 수행하기 위해서 미리 작성된 코드의 집합
  • 다양한 기능을 제공하며, 프로그래머가 새로운 코드를 처음부터 작성할 필요없이 효율적으로 프로그램을 개발할 수 있게 도와 줌

2.다양한 라이브러리 예

  • NumPy: 과학 계산을 위한 기본적인 라이브러리, 강력한 N차원 배열 객체와 이를 처리하는 다양한 함수를 제공합니다. 선형대수, 푸리에 변환, 난수 생성 등의 기능을 포함합니다. 기본 패키지 중 하나입니다.
  • Pandas: 데이터 처리와 분석을 위한 라이브러리, 특히 테이블 형태의 데이터를 다루는데 유용합니다. *데이터프레임(DataFrame)과 시리즈(Series) *같은 자료구조를 제공하며, 데이터 조작, 정리, 탐색에 강력한 도구를 제공합니다.
  • Matplotlib: 데이터를 시각화하는 라이브러리, 그래프와 차트를 쉽게 만들 수 있습니다. 플롯(Plot), 히스토그램, 바 차트 등 다양한 형태의 시각화를 지원합니다.
  • TensorFlow/PyTorch: 두 라이브러리 모두 딥러닝과 머신 러닝을 위한 라이브러리로, 신경망을 구축하고 훈련하는 데 사용됩니다. 둘 다 대규모 데이터셋에 대한 학습, 자동 미분, 다양한 최적화 알고리즘을 제공합니다.
  • 필로우(Pillow): PIL(Python Imaging Library)와 호환성을 유지하면서 쉽게 사용할수 있는 영상 처리 라이브러리.

3.라이브러리 설치 (pip)

  • PIP (Python Installs Packages)은 Python에서 사용되는 패키지 관리 시스템입니다.
  • 파이썬 패키지를 설치할 때 가장 많이 사용하는 도구가 바로 pip이다.
    다른 언어는 라이브러리를 설치하기가 만만치 않지만, 파이썬은 너무나도 간단하다. pip는 파이썬에 기본적으로 포함되는 설치 도구이다.
pip install Pillow
  • notice :만약 패키지가 설치되지 않는다면?
    > 파이썬의 버전과 라이브러리 버전이 일치하지 않은 경우가 많다. 이때에는 파이썬의 버전을 조절하여 일치 시켜 준 후 설치한다.

2.맷플롯립(Matplotlib)-그래프를 그려보자

  • Python에서 가장 널리 사용되는 데이터 시각화 라이브러리
  • 복잡한 자료를 숫자나 텍스트보다는 그래프나 차트로 데이터를 시각화하여 이해하고 분석하는 것이 효과적
  • 데이터를 시각화하는데 편리한 라이브러리
  • 선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등 다양한 유형의 그래프를 지원
  • 파일 저장: 생성한 그래프를 다양한 형식(예: PNG, PDF, SVG)으로 저장

https://matplotlib.org/stable/plot_types/index.html

 

Plot types — Matplotlib 3.9.3 documentation

Plot types Overview of many common plotting commands provided by Matplotlib. See the gallery for more examples and the tutorials page for longer examples. Pairwise data Plots of pairwise \((x, y)\), tabular \((var\_0, \cdots, var\_n)\), and functional \(f(

matplotlib.org

 

  • 기본 설치 도구: pip 사용하기 - pip는 파이썬에 내장된 패키지 관리 도구로, 라이브러리를 쉽게 설치할 수 있다.
  • 특정 버전 설치 : pip install pillow(라이브러리명)==9.0.0(버전)
  • 최신 버전으로 업데이트 : pip install --upgrade 라이브러리명Python 코드 셀 내부에서 쉘 명령어를 실행하기 위해 !를 사용한다.
pip install matplotlib
import matplotlib.pyplot as plt

2.간단한 그래프

  • 우리는 matplotlib의 하위 모듈인 pyplot을 사용한다. pyplot은 객체 지향적인 인터페이스를 제공한다.
  • 각 그래프나 차트는 하나의 '객체'로 취급되며, 이는 각 그래프나 차트가 자신만의 속성(예: 색상, 레이블, 크기 등)과 메소드(예: 그리기, 색상 변경 등)를 가지고 있다는 의미.
  • x값과 y값을 리스트 형태로 plot() 함수로 전달하면, plot() 함수는 이것으로 선 그래프를 그린다.
  • Google Colab에서는 그래프를 생성하면 plt.show()를 사용하지 않아도 자동으로 그래프가 표시됩니다.
import matplotlib.pyplot as plt
MyGrowHeight = [130, 140, 150, 165, 175, 176]
plt.plot(MyGrowHeight)
plt.show()

plot 주요 매개변수

  • x, y: 각각 x축과 y축에 대응하는 데이터 값입니다.
  • color: 선의 색상을 지정합니다.
  • linestyle: 선의 스타일을 지정합니다 (예: '-', '--', '-.', ':').
  • linewidth: 선의 너비를 지정합니다.
  • marker: 데이터 포인트에 표시할 마커의 스타일을 지정합니다 (예: 'o', '^', 's').
  • label: 범례에 사용될 라벨을 지정합니다.

from matplotlib import pyplot as plt
import matplotlib.pyplot as plt  # Matplotlib의 pyplot 모듈을 불러옴

# 데이터 정의
x = [1, 2, 3]  # x축 데이터
y = [1, 2, 3]  # y축 데이터

# 그래프 생성
plt.plot(
    x, y, 
    linewidth=2,          # 선의 두께 설정
    linestyle='--',       # 선 스타일: 점선으로 설정
    color='green',        # 선 색깔: 녹색으로 설정
    marker="*"            # 데이터 포인트에 별 모양 마커 추가
)

# 그래프 제목
plt.title('line plot')  # 그래프 제목 설정

# 축 레이블 설정
plt.xlabel('x')  # x축 레이블
plt.ylabel('y')  # y축 레이블

# 범례 추가
plt.legend(['y'])  # 'y'라는 레이블을 범례로 추가

# 그리드 표시
plt.grid()  # 그래프에 그리드 표시

# 그래프 출력
plt.show()  # 그래프를 화면에 표시

3.하나의 그래프에 2개의 값을 겹쳐서 표시

import matplotlib.pyplot as plt
X = [ "Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun" ]
Y1 = [15.6, 14.2, 16.3, 18.2, 17.1, 20.2, 22.4]
Y2 = [20.1, 23.1, 23.8, 25.9, 23.4, 25.1, 26.3]

plt.plot(X,Y1, label='Y1')
plt.plot(X,Y2, label='Y2')

plt.legend(loc='upper left')


4.2차함수 그리기

import matplotlib.pyplot as plt

x, y, z = [], [], []

for i in range(100):
    x.append(i/50.0)

for i in x:
    y.append(i**2)

for i in x:
    z.append(i**3)

plt.plot(x,x, label='liner')
plt.plot(x,y, label='square')
plt.plot(x,z, label='cube')
plt.legend(['liner', 'square', 'cube'], loc='upper left')

5.막대그래프 : bar()

  • 이산적(연속적이지 않은) 데이터를 시각화할 때 적합
  • 카테고리 비교(Category Comparison) 할 때
  • 변화 추적 : 시간이 지남에 따라 특정 카테고리의 변화를 추적할 때
  • 구성 요소 비교(Comparison of Parts to a Whole): 전체에 대한 부분들의 비율을 비교할 때
  • 참고 파라미트나 속성 확인 : plt.bar
import matplotlib.pyplot as plt
x = ["Mon","Tue","Wed","Thur","Fri","Sat","Sun"]
y = [15.6, 14.2, 16.3, 18.2, 17.1, 20.2, 22.4]

plt.bar(x,y, width=0.5, color='green', hatch='/')
plt.savefig('bar.jpg')
plt.show()

 


import matplotlib.pyplot as plt

numX = list(range(1, 11))
numY = range(10,0,-1)
plt.bar(numY,numY, color='pink')
plt.scatter(numX, numY, color='green')
plt.plot(numX,numY, c='red')
import matplotlib.pyplot as plt

numX = list(range(1, 11))
numY = range(10,0,-1)
plt.bar(numY,numY, color='pink')
plt.scatter(numX, numY, color='green')
plt.plot(numX,numY, c='red')

import matplotlib.pyplot as plt

y = [100, 120, 130, 140, 80, 150]
x = range(len(y))

plt.bar(x,y, width=0.5)

6.누적 막대 그래프

 

  • bar에서 매개변수 bottom을 사용하여 이전 값을 더해 주는 형태로 만들어간다.
import matplotlib.pyplot as plt
import numpy as np

x= [1,2,3,4]
a = np.array([10,15,20,25])
b = np.array([50, 55, 60, 65])
c = np.array([100, 105, 110, 115])

plt.bar(x, a, color='pink')
plt.bar(x, b, color='green', bottom=a)
plt.bar(x, c, color="red", bottom=a + b)#배열간의 a + b를 사용하기 위해 numpy 사용

plt.show()

7.분포도 : scatter()

 

  • 분포도란 : 선이 아닌 점으로 그래프를 표시하는 방법
  • (x,y) 좌표의 자료 필요
  • 산점도는** 두 변수 간의 관계를** 시각적으로 표현하는 데 유용한 그래프 유형
  • 산점도를 통해 데이터가 어떻게 분포되어 있는지 시각적으로 확인할 수 있습니다. 데이터의 군집, 패턴, 이상치 등을 쉽게 파악할 수 있습니다.
  • 데이터 중에서 다른 데이터 포인트와 비교해 눈에 띄게 다른 값들을 확인
  • 색상이나 마커 스타일을 사용하여 다양한 그룹
import matplotlib.pyplot as plt

numX = [1,2,3,4,5,6,7,8,9,10]
numY = range(10, 0, -1)

plt.scatter(numX, numY, s=50, color="green")
plt.xlabel('X')
plt.ylabel('Y')

8.원그래프 - pie()

 

  • pie()를 호출하여 그린다
  • 비율 비교:여러 항목이 전체에서 차지하는 비율을 비교할 때
  • 구성 요소 분석:상대적인 크기를 시각적으로 쉽게 파악
  • 원형 그래프는 비교적 적은 수의 카테고리로 구성된 단순한 데이터 세트에 적합
  • 파이 챠트 중에서 하나의 파이가 눈에 띄기를 원한다면 explode 매개 변수(폭발처럼 떨어져 나가서 그려짐)를 이용한다.
import matplotlib.pyplot as plt

ratio = [40, 20, 10, 30]
title =["Eating Out", "Shopping", "Groceries", "Housing"]
explode = [0.1,0, 0, 0]
plt.pie(ratio, labels=title, explode=explode)

plt.show()

9.그래프 저장과 불러오기

  • 저장하기 : savefig('파일명)
x = [1,2,3]
y = [1,2,3]

plt.plot(x,y)
plt.savefig('bar2.jpg')

그래프 이미지 불러오기

  • PIL 필로우 라이브러리 이용
from PIL import Image
import matplotlib.pyplot as plt

img = Image.open('bar1.jpg')
print(img.size)
plt.imshow(img)

 

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
반응형