OneBook(Python & Deep Learning)
  • 한곳에서 끝내는 파이썬 & 머신러닝 & 딥러닝
  • 문서 작업을 시작하며
  • 1. 인공지능(Artificial Intelligence) 시대
    • 1.1. 인공지능이란 도대체 무엇인가?
    • 1.2. 4차 산업혁명
    • 1.3. 인공지능의 역사
    • 1.4. 인공지능 > 머신러닝 > 딥러닝
    • 1.5. 머신러닝
    • 1.6. 머신러닝 알고리즘
      • 1.6.1. 지도 학습 (Supervised Learning)
      • 1.6.2. 비지도 학습 (Unsupervised learning)
      • 1.6.3. 강화 학습(Reinforcement Learning)
    • 1.7. 인공신경망(ANN)
    • 1.8. 딥러닝
  • 2. 기본 상식
    • 2.1. 기본 용어의 이해
      • 2.1.1. CPU와 GPU의 차이
      • 2.1.2. 오픈소스(Open Source)
      • 2.1.3. 깃허브(GitHub)
      • 2.1.4. 위키 Wiki
      • 2.1.5. 아나콘다(Anaconda)
      • 2.1.6. 활성화 함수
      • 2.1.5. 딥러닝 프레임워크 소개
    • 2.2. 텐서플로(Tensorflow)
    • 2.3. 케라스(Keras)
    • 2.4. 파이토치(PyTorch)
    • 2.5. 학습에 필요한 중요한 도구와 라이브러리들
      • 2.5.1. 주피터 노트북(Jupyter Notebook)
      • 2.5.2. 파이참(PyCharm)
      • 2.5.3. 스파이더(Spyder)
      • 2.5.4. 넘파이(NumPy)
      • 2.5.5. 싸이파이(SciPy)
      • 2.5.6. Matplotlib
      • 2.5.7. 판다스(Pandas)
      • 2.5.8. 장고(Django)
      • 2.5.9. 파이큐티(pyQT)
      • 2.5.10. 싸이킷런(Scikit-learn)(Sklearn)
      • 2.5.11. CUDA & cuDNN
      • 2.5.12. 파이썬 표준 내장 라이브러리
    • 2.6. AI공부에 필요한 기본지식 3가지
      • 2.6.1. 수학
      • 2.6.2. 프로그래밍 기술
      • 2.6.3. AI의 적용 대상 산업에 대한 지식
  • 3. 개발 환경설정
    • 3.1. 윈도우 환경에서 설치하기
      • 3.1.1. 아나콘다 설치 (파이썬 설치)
        • 1) 아나콘다 패키지 업데이트
        • 2) conda에서 파이썬 가상 환경 (virtual environments) 생성하기
        • 3) NVIDIA GPU 환경 설정하기
      • 3.1.2. 텐서플로 설치
      • 3.1.3. 케라스 설치
      • 3.1.4. Jupyter Notebook 설치
      • 3.1.5. Visual Studio Code 설치
      • 3.1.6. 파이참 설치
        • 1) 파이참 가상환경 설정
        • 2) 파이참 환경 설정
        • 3) 설치된 라이브러리들의 버전 확인 하기
    • 3.2. 리눅스 환경에서 설치하기
      • 3.2.1. 아나콘다 설치(파이썬 설치)
      • 3.2.2. 텐서플로 설치
      • 3.2.3. 케라스 설치
      • 3.2.4. 장고 설치
      • 3.2.5. 파이참(PyCharm) 설치
        • 1) 파이참 가상환경 설정
  • 4. 파이썬 기초 학습
    • 4.1. 파이썬(Python)
    • 4.2. 파이썬의 특징
    • 4.3. 파이썬 기본 문법
      • 4.3.1. 대화형과 스크립트 모드 프로그래밍
      • 4.3.2. 모듈의 사용(import)
      • 4.3.3. 파이썬 식별자(Identifiers)
      • 4.3.4. 예약어(Reserved Words)
      • 4.3.5. 행(Lines)과 들여쓰기(Indentation)
      • 4.3.6. 문자열 표시
      • 4.3.7. 주석
      • 4.3.8. 파이썬 변수(Variables)
    • 4.4. 자료형과 연산자
      • 4.4.1. 자료형
      • 4.4.2. 파이썬 연산자
    • 4.5. 조건문과 반복문
      • 4.5.1. 조건문
      • 4.5.2. 반복문
    • 4.6. 함수
      • 4.6.1. 함수의 종류
    • 4.7. 모듈(Modules)
      • 4.7.1. 모듈의 참조 위치
      • 4.7.2. 네임스페이스(Namespace)와 범위(Scoping)
      • 4.7.3. dir( ) 함수
      • 4.7.4. 패키지(Packages)
      • 4.7.5. 기본 내장 모듈
    • 4.8. 숫자형 활용
      • 4.8.1. 실습: 계산기 만들기
    • 4.9. 문자열(Strings) 활용
      • 4.9.1. Unicode 한글의 사용
      • 4.9.2. 이스케이프 문자
      • 4.9.3. 문자열 연산자
      • 4.9.4. 문자열 포맷 연산자
      • 4.9.5. 내장 문자열 함수
    • 4.10. 시퀀스(Sequence) 자료형 활용
      • 4.10.1. 리스트(Lists)
      • 4.10.2. 튜플(Tuple)
      • 4.10.3. 딕셔너리(Dictionary)
    • 4.11 Class
    • 4.12. Date & Time
    • 4.13. 파이썬 에러처리
  • 5. 기초수학
  • 6. 머신러닝을 위한 파이썬
  • 7. 텐서플로 2.x
  • 8. 딥러닝을 이용한 자연어 처리 입문
  • 9. 파이토치로 시작하는 딥 러닝 입문
  • 9.6 6. Pytorch lightning
  • A1. 필수 학습 라이브러리들
    • 4.1 NumPy
      • 4.1.1. Basic Operations
      • 4.1.2. Indexing, Slicing 그리고 Iterating
      • 3.13.3. Shape Manipulation
    • 4.2 Matplotlib
    • 4.3 SciPy
      • 4.3.1. Interpolation
      • 4.3.2. Optimization
      • 4.3.3. Fast Fourier transforms: scipy.fftpack
    • 4.4 Pandas
      • 4.4.1 Pandas 자료구조
      • 4.4.2 Pandas 활용하기
  • A2. 머신러닝 & 딥러닝
    • 5.1. 머신러닝 개념 소개
      • 5.1.1. 경사하강법(Gradient Descent )
      • 5.1.2. 분류 (Classification)
      • 5.1.3. MNIST Dataset 소개
    • 5.2. 딥러닝 개념 소개
      • 5.2.1. 퍼셉트론
      • 5.2.2. 인공 신경망
      • 5.2.3. 대표적인 딥러닝 모델
    • 5.3. Tensorflow를 사용한 학습
      • 5.3.1. TensorFlow 기본 메커니즘
      • 5.3.2. Tensorflow Types
      • 5.3.3. 기본 동작 실습
      • 5.3.4. 선형 회귀
      • 5.3.5 로지스틱 회귀
    • 5.4. Keras를 사용한 학습
      • 5.4.1. Keras로 분석한 선형 회귀
      • 5.4.2. CNN(Convolutional Neural Network)
      • 5.4.3. Fashion MNIST with Keras
    • 5.5. 웹 크롤링
      • 5.5.1. requests와 BeautifulSoup으로 웹 크롤러 만들기
Powered by GitBook
On this page

Was this helpful?

  1. A1. 필수 학습 라이브러리들

4.2 Matplotlib

Previous3.13.3. Shape ManipulationNext4.3 SciPy

Last updated 6 years ago

Was this helpful?

Matplotlib는 파이썬에서 자료를 차트나 plot으로 데이터 시각화 패키지입니다. Matplotlib는 다음과 같은 정형화된 차트나 플롯 이외에도 다양한 시각화 기능을 제공합니다.

  • 라인 플롯(line plot)

  • 스캐터 플롯(scatter plot)

  • 컨투어 플롯(contour plot)

  • 서피스 플롯(surface plot)

  • 바 차트(bar chart)

  • 히스토그램(histogram)

  • 박스 플롯(box plot)

Matplotlib를 사용하기 위해서는 먼저 matplotlib.pyplot 을 import 합니다. pyplot을 다른 이름으로 사용할 수 있지만 통상 plt 라는 alias를 사용합니다. 다음 plt.plot()은 라인 플롯을 그리는 함수인데, 아래는 X축값 1,2,3과 Y축값 110,130,120을 가지고 라인 플롯을 그리는 예제입니다. 마지막으로 실제 그림을 표시하는 함수인 plt.show()을 호출합니다.

 from matplotlib import pyplot as plt

 plt.plot(["Seoul", "Daejeon", "Busan"], [95, 137, 116])
 plt.xlabel('City')
 plt.ylabel('Response')
 plt.title('DeepLearning Result')
 plt.show()

위의 코드를 실행하면 다음과 같은 결과를 출력합니다.

모든 x, y 쌍의 인수에 대해 선택적인 세 번째 인수가 있습니다. 이 인수는 플롯의 색상과 선 유형을 나타내는 형식 문자열입니다. 형식 문자열의 문자와 기호는 MATLAB에서 가져온 것이므로 색상 문자열을 선 스타일 문자열과 연결합니다. 기본 형식 문자열은 'b-'이며, 이는 청색 선입니다. 예를 들어 위의 내용을 빨간색 원으로 그리려면 다음과 같이 사용합니다.

 from matplotlib import pyplot as plt

 plt.plot(["Seoul", "Daejeon", "Busan"], [95, 137, 116], ‘ro’)
 plt.xlabel('City')
 plt.ylabel('Response')
 plt.title('DeepLearning Result')
 plt.show()

matplotlib는 수치 처리를 위해 일반적으로 numpy 배열을 사용합니다. 아래 예제는 배열을 사용하여 하나의 명령에서 다른 형식 스타일을 가진 여러 줄을 플로팅하는 것을 보여줍니다.

Matplotlib는 위에서 예시한 라인 플롯 이외에 여러 다양한 차트/플롯을 그릴 수 있는데, 각 차트/플롯마다 다른 함수들을 사용합니다. 예를 들어, Bar 차트를 그리기 위해서는 plt.bar() 함수를 사용하고, Pie 차트를 그리기 위해서는 plt.pie()를, 히스토그램을 그리기 위해선 plt.hist() 함수를 사용합니다.

 from matplotlib import pyplot as plt

 names = ['group_a', 'group_b', 'group_c']
 values = [1, 10, 100]

 plt.figure(1, figsize=(9, 3))

 plt.subplot(131)
 plt.bar(names, values)
 plt.subplot(132)
 plt.scatter(names, values)
 plt.subplot(133)
 plt.plot(names, values)
 plt.suptitle('Categorical Plotting')
 plt.show()

다음 예제를 통해 다양한 Matplotlib의 표현을 학습해 보십시요.

 import numpy as np
 from matplotlib import pyplot as plt
 from matplotlib.ticker import NullFormatter  # useful for `logit` scale

 # Fixing random state for reproducibility
 np.random.seed(19680801)

 # make up some data in the interval ]0, 1[
 y = np.random.normal(loc=0.5, scale=0.4, size=1000)
 y = y[(y > 0) & (y < 1)]
 y.sort()
 x = np.arange(len(y))

 # plot with various axes scales
 plt.figure(1)

 # linear
 plt.subplot(221)
 plt.plot(x, y)
 plt.yscale('linear')
 plt.title('linear')
 plt.grid(True)


 # log
 plt.subplot(222)
 plt.plot(x, y)
 plt.yscale('log')
 plt.title('log')
 plt.grid(True)


 # symmetric log
 plt.subplot(223)
 plt.plot(x, y - y.mean())
 plt.yscale('symlog', linthreshy=0.01)
 plt.title('symlog')
 plt.grid(True)

 # logit
 plt.subplot(224)
 plt.plot(x, y)
 plt.yscale('logit')
 plt.title('logit')
 plt.grid(True)
 # Format the minor tick labels of the y-axis into empty strings with
 # `NullFormatter`, to avoid cumbering the axis with too many labels.
 plt.gca().yaxis.set_minor_formatter(NullFormatter())
 # Adjust the subplot layout, because the logit one may take more space
 # than usual, due to y-tick labels like "1 - 10^{-3}"
 plt.subplots_adjust(top=0.92, bottom=0.08, left=0.10, right=0.95, hspace=0.25,
                     wspace=0.35)

 plt.show()