Matplotlib은 python에서 수학적 그래프를 그릴 수 있는 외부 라이브러리입니다. 이번 포스팅에서는 matplotlib의 pyplot을 사용해서 그래프를 그려보겠습니다.
1. Matplotlib.pyplot으로 기본적인 2차원 그래프 그리기
먼저 다음 예로 시작하겠습니다.
import matplotlib.pyplot as plt
plt.plot([1, 3, 5, 7])
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
위 코드의 첫 줄은 matplotlib.pyplot을 plt라는 이름으로 import 합니다.
두 번째 줄의 plot()은 pyplot에서 그래프를 그려주는 함수입니다.
plot()의 괄호 안에는 리스트 데이터를 입력하는데, 위 예처럼 리스트가 한 개인 경우는 리스트의 원소들이 xy좌표에서 y값이 됩니다. 이때 x값은 0, 1, 2, … 과 같이 입력된 리스트의 원소 개수에 맞춰 자동으로 만들어집니다.
따라서 위의 예는 점 (0, 1), (1, 3), (2, 5), (3, 7)들을 연결하는 선들을 그려줍니다.
show() 함수는 plot()이 그린 그래프를 화면에 보여줍니다.
또한 xlabel(), ylabel() 들은 각각 그래프에 x, y축의 레이블을 써주는 함수입니다.
만약 x값을 자동으로 만드는 대신 원하는 값을 입력하려면 다음과 같이 위 코드의 두 번째 줄에 리스트를 추가해줍니다.
plt.plot([1, 2, 3, 4], [1, 3, 5, 7])
이때 첫 번째 리스트가 x좌표값, 두 번째가 y좌표값이 됩니다.
이제 실행하고 출력하면 다음과 같이 x좌표값들이 바뀐 것을 볼 수 있습니다.
2. pyplot axis(), xlim(), ylim()함수로 x, y축의 범위 정하기
위 예들의 그래프들을 보면 x, y축의 범위가 입력된 좌표 값들이라는 것을 알 수 있습니다. 만약 원하는 x, y축의 범위를 그리고 싶다면 axis() 함수를 이용합니다.
위 예에 다음과 같이 axis()함수를 추가하면 그려지는 축의 범위를 정할 수 있습니다.
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 3, 5, 7])
plt.axis([0, 5, 0, 10]) #축의 범위: [xmin, xmax, ymin, ymax]
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
또한 xlim(), ylim() 함수들은 각각 x축, y축의 범위를 정해줍니다.
다음 코드는 위와 동일한 결과를 출력합니다.
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 3, 5, 7])
plt.xlim([0, 5])
plt.ylim([0, 10])
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
3. plot() 함수에서 선스타일과 마커 설정하기
plot() 함수는 선의 스타일(색과 대시)을 조정할 수 있고 점(마커)을 그려줄 수도 있습니다.
위 예에서 plot()함수가 있는 줄을 다음과 같이 수정하겠습니다.
plt.plot([1, 2, 3, 4], [1, 3, 5, 7], '--', color='blue')
또는
plt.plot([1, 2, 3, 4], [1, 3, 5, 7], linestyle='dashed', color='blue')
실행해 보면 아래와 같이 선이 파란색 파선(dashed line)으로 바뀐 것을 볼 수 있습니다.
다음표는 선택할 수 있는 선 스타일입니다.
그리고 다음과 같이 마커를 설정하면 입력된 좌표에 점을 찍어줍니다.
plt.plot([1, 2, 3, 4], [1, 3, 5, 7], linestyle='dashed', marker='o', color='blue')
또는
plt.plot([1, 2, 3, 4], [1, 3, 5, 7], 'bo--')
실행하면 아래와 같은 그래프를 그립니다.
다음표는 사용할 수 있는 마커들입니다.
4. set_dashes() 메소드로 선 스타일 커스터마이징 하기
위에서 본 것과 같이 plot()함수는 4가지 선 스타일을 제공합니다.
만약 원하는 선 스타일을 만들려면 set_dashes() 메소드를 이용할 수 있습니다.
다음 예를 보시기 바랍니다.
import matplotlib.pyplot as plt
line, = plt.plot([1, 2, 3, 4], [1, 3, 5, 7], linestyle='solid', color='blue')
line.set_dashes([2, 2, 10, 2]) # 선 2pt, 공간 2pt, 선 10pt, 공간 2pt
plt.xlim([0, 5])
plt.ylim([0, 10])
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
위 예시를 그려보면 아래와 같은 그림을 출력합니다.
'Python > python 응용: 수학 및 과학' 카테고리의 다른 글
Python NumPy 배열 만들기: arange()와 linspace()의 차이 (0) | 2022.12.28 |
---|---|
Numpy 복소수 계산하기: 근의 공식 (0) | 2022.12.21 |
Python NumPy 행렬의 원소 접근하여 작업하기: trace (0) | 2022.12.06 |
Python 브로드캐스트: 크기가 다른 배열의 곱셈 (0) | 2022.12.06 |
Python numpy를 이용한 행렬 연산 (0) | 2022.12.06 |
댓글