45. 파이썬에서 matplotlib.pyplot을 이용하면 쉽게 도면을 그릴 수 있어요.

안녕하세요. 언휴예요.

파이썬의 장점은 여러 모듈을 효과적으로 혼합하여 사용할 수 있다는 것이죠. 이번에는 MATLAB과 유사한 방법으로 도면을 그릴 때 사용하는 matplotlib의 pyplot에 관해 소개할게요.

먼저 Python 패키지 설치 기능을 이용하여 matplotlib를 설치하세요. Visual Studio에서 Python 패키지를 설치하는 방법은 앞에서 이미 다루었죠.

이번 글에서는 간단하게 pyplot을 사용하는 실습을 통해 맛을 보기로 할게요.

먼저 import 문을 작성하세요. matplotlib.pyplot을 명시하는 것을 줄여서 plt를 사용할 수 있게 합시다.

import matplotlib.pyplot as plt

plot 메서드를 사용하여 도면에 표시할 값이나 표현 방식을 지정할 수 있어요. 값은 x값 목록과 y값 목록을 리스트 형태로 전달할 수 있는데 리스트 한 개만 전달하면 y값 목록으로 취급합니다. 그리고 show 메서드를 호출하면 도면 창이 나타납니다.

plt.plot([1,2,3,4])#디폴트 그리기:파란색 라인, 'b-'
plt.show()

위 예에서 y값 목록만 [1,2,3,4] 전달하였는데 도면에 표시할 때 x값 목록은 자동으로 [0,1,2,3]을 전달합니다. 그리고 plot에 x,y 값 목록만 전달할 때는 파란색 선으로 표시합니다.

[그림 1] plot([1,2,3,4])
[그림 1] plot([1,2,3,4])

plot 메서드의 원형은 다음과 같아요.

plot ([ x ], y , [ fmt ], data = None , ** kwargs )

plot ([ x ], y , [ fmt ], [ x2 ], y2 , [ fmt2 ], … , ** kwargs )

plot 메서드의 원형에 관해서는 이번 실습을 마치고 난 후에 다루기로 할게요.

이번에는 x값 목록과 y값 목록 둘 다 전달해 봅시다. 두 개의 리스트를 전달하며 앞 쪽 리스트가 x값 목록이며 뒤 쪽 리스트가 y값 목록이예요.

plt.plot([1,2,3,4],[2,3,4,5])#x값 목록:[1,2,3,4], y값 목록: [2,3,4,5]
plt.show()
[그림 2] plot([1,2,3,4],[2,3,4,5])
[그림 2] plot([1,2,3,4],[2,3,4,5])

이번에는 fmt 부분의 값을 전달해 볼게요. fmt의 디폴트 값은 ‘b-‘으로 파란색 선이예요. 여기에서는 녹색 점으로 표시할 수 있게 ‘go’를 전달합시다. 자세한 사항은 실습을 마치고 설명하기로 했죠.

plt.plot([1,2,3,4],[1,2,3,4],'go') #'go'는 녹색 점
plt.show()
[그림 3] plot([1,2,3,4],[1,2,3,4],'go')
[그림 3] plot([1,2,3,4],[1,2,3,4],’go’)

이번에는 여러 개를 전달하는 것을 해 보아요. 단순히 필요한 만큼 입력 인자로 전달합니다. 하나는 녹색의 점(‘go’)으로 하나는 빨간색 +표시(‘ro’)로 나타나게 합시다.

plt.plot([1,2,3,4],[1,2,3,4],'go', [1,2,3,4],[2,3,4,5],'r+')#두 쌍의 데이터 설정
plt.show()
[그림 4] plot([1,2,3,4],[1,2,3,4],'go', [1,2,3,4],[2,3,4,5],'r+')
[그림 4] plot([1,2,3,4],[1,2,3,4],’go’, [1,2,3,4],[2,3,4,5],’r+’)

다음은 이번에 실습한 전체 코드예요.

#그래프 그리기
import matplotlib.pyplot as plt

plt.plot([1,2,3,4])#디폴트 그리기:파란색 라인, 'b-'
plt.show()

plt.plot([1,2,3,4],[2,3,4,5])#x값 목록:[1,2,3,4], y값 목록: [2,3,4,5]
plt.show()

plt.plot([1,2,3,4],[1,2,3,4],'go') #'go'는 녹색 점
plt.show()

plt.plot([1,2,3,4],[1,2,3,4],'go', [1,2,3,4],[2,3,4,5],'r+')#두 쌍의 데이터 설정
plt.show()