티스토리 뷰

Opencv 공부

[openCV] Matplotlib

권벡터 2023. 5. 7. 00:10

'Matplotlib' 는 파이썬에서 가장 인기있는 데이터 시각화 라이브러리이다. 이것을 이용해서 도표나 차트를 손쉽게 그릴 수 있다.  오늘은 'Matplotlib' 라이브러리 설치 및 차트를 그리는 것을 포스트 하겠다. 

 

 

자세한 정보는 아래의 링크를 참고하자.

https://maplotlib.org : Matplotlib 공식 사이트

https://matplotlib.org/tutorials/introductory/pyplot.html:Pyplot 튜토리얼 

 

 

 

Matplotlib 설치 (pip3 사용)


pip3 install matplotlib

 

설치가 완료되면 파이썬3 콘솔에서 아래의 명령어를 입력하여 버전 확인

>>> import matplotlib.pyplot
>>> matplotlib.__version__

 

 

 

 

plot 그리기


기본 plot

import matplotlib.pyplot as plt
import numpy as np

a=np.array([1,6,4,3,12,9,4,2])  # 배열 생성
plt.plot(a)                     # plot 생성
plt.show()                      # plot 그리기

 

 

실행결과 이미지

 

 

y=X^2  그래프 

import matplotlib.pyplot as plt
import numpy as np

x=np.arange(100)    # 정의역 구간 정의
y=x**2              # 수식 전개
plt.plot(x,y)       # plot 생성
plt.show()          # plot 그리기

 

 

실행 결과 이미지

 

 

실선 색상 변경 

색상 기호

  • b: Blue(파란색)
  • g: Green(초록색)
  • r: Red(빨간색)
  • c: Cyan(청록색)
  • m: Magenta(자홍색)
  • y: Yellow(노란색)
  • k: Black(검은색)
  • w: White(흰색)

 

사용법

plt.plot(x,y,'r')	#plot의 실선을 빨간색으로 설정

 

 

스타일 변경

기호 스타일 기호 스타일
- 실선(기본) -- 이음선
-. 점 이음선 : 점선
. , 픽셀
o v 역삼각형
^ 정삼각형 < 좌 삼각형
> 우 삼각형 l 작은 역삼각형
2 작은 정삼각형 3 작은 좌 삼각형
4 작은 우 삼각형 s 사각형
p 오각형 * 별표
D 다이아몬드 표 X 엑스 표

 

예제 코드

import matplotlib.pyplot as plt
import numpy as np

x=np.arange(20)     # 정의역 구간 정의
f1 = x*5        
f2 = x**2
f3 = x**2 +x*2

plt.plot(x,'r--')   # 빨간색 이음선
plt.plot(f1,'g.')   # 초록색 점
plt.plot(f2,'bv')   # 파란색 역삼각형
plt.plot(f3,'ks')   # 검은색 사각형
plt.show()

 

 

실행 결과 이미지

 

 

 

subplot

import matplotlib.pyplot as plt
import numpy as np

x=np.arange(50)     # 정의역 구간 정의

plt.subplot(2,2,1)  # 2행 2열 중 1번째
plt.plot(x,x**2)

plt.subplot(2,2,2)  # 2행 2열 중 2번째
plt.plot(x,x*5)

plt.subplot(223)    # 2행 2열 중 3번째
plt.plot(x,np.sin(x))

plt.subplot(224)    # 2행 2열 중 4번째
plt.plot(x,np.cos(x))

plt.show()

 

 

실행결과 이미지

 

 

 

이미지 표시

import cv2
import matplotlib.pyplot as plt

img=cv2.imread('C:/Users/kycky/opencv/photo.jpg')

plt.imshow(img) # 이미지 표시
plt.show()

 

 

실행 결과 이미지

 

위의 이미지가 좀 이상하다. 원인은 해당 이미지는 컬러채널을 R,G,B 순으로 읽어야 하는데 openCV는 B,G,R 순으로 읽기 때문에 색이 반전되어 보이게 된 것이다. 이를 위해서는 컬러채널 순서를 바꾸어 줄 필요가 있다.

 

import cv2
import matplotlib.pyplot as plt

img=cv2.imread('C:/Users/kycky/opencv/photo.jpg')

plt.imshow(img[:,:,::-1])   # 이미지 컬러채널 변경해서 표시
plt.xticks([])              # x 좌표 눈금 제거
plt.yticks([])              # y 좌표 눈금 제거
plt.show()

 

 

실행 결과 이미지

 

여러 이미지 동시에 출력

import cv2
import matplotlib.pyplot as plt
import numpy as np


img1=cv2.imread('C:/Users/kycky/opencv/photo.jpg')
img2=cv2.imread('C:/Users/kycky/opencv/dog1.jpg')
img3=cv2.imread('C:/Users/kycky/opencv/dog2.jpg')

plt.subplot(1,3,1)
plt.imshow(img1[:,:,(2,1,0)])
plt.xticks([]);plt.yticks([])

plt.subplot(1,3,2)
plt.imshow(img2[:,:,(2,1,0)])
plt.xticks([]);plt.yticks([])

plt.subplot(1,3,3)
plt.imshow(img3[:,:,(2,1,0)])
plt.xticks([]);plt.yticks([])

plt.show()

 

 

실행 결과 이미지

'Opencv 공부' 카테고리의 다른 글

[openCV] 관심 영역 지정하기  (1) 2023.05.09
[openCV] NumPy  (3) 2023.05.06
[openCV] 각종 이벤트 함수 모음  (1) 2023.05.04
[openCV] 창 관리하기  (0) 2023.05.01
[openCV] 그림 그리기  (2) 2023.04.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
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
글 보관함