달나라 노트

Python matplotlib : pyplot (Python으로 그래프 그리기) 본문

Python/Python matplotlib

Python matplotlib : pyplot (Python으로 그래프 그리기)

CosmosProject 2021. 7. 26. 21:41
728x90
반응형

 

 

 

Python의 matplotlib를 이용하면 Python에서 그래프를 그릴 수 있습니다.

 

import matplotlib.pyplot as plt

list_x = [1, 2, 3, 4, 5]
list_y = [10, 30, 15, 20, 5]

plt.plot(list_x, list_y,
         color='skyblue',
         marker='o', markerfacecolor='blue',
         markersize=12)

plt.title('Test graph')
plt.xlabel('date')
plt.ylabel('amount')
plt.show()
plt.close()

위같은 코드를 작성하여 실행하면 아래 이미지와 같은 결과를 얻을 수 있습니다.

 

그래프를 그릴 수 있죠.

 

 

 

 

 

그러면 위 코드를 한번 해석해봅시다.

 

import matplotlib.pyplot as plt # 1

list_x = [1, 2, 3, 4, 5]
list_y = [10, 30, 15, 20, 5]

plt.plot(list_x, list_y, # 2
         color='skyblue', # 3
         marker='o', # 4
         markerfacecolor='blue', # 5
         markersize=12) # 6

plt.title('Test graph') # 7
plt.xlabel('date') # 8
plt.ylabel('amount') # 9
plt.show() # 10
plt.close() # 11

1. matplotlib의 pyplot을 이용하여 그래프를 그릴 것입니다.

 

2. plot method에 옵션을 추가해줍니다. pyplot으로 그래프를 그릴 때 x축의 값 list와 y축 값의 list를 먼저 전달해줍니다.

x축 값은 1, 2, 3, 4, 5이며

y축 값은 10, 30, 15, 20, 5입니다.

따라서 이 그래프에 존재하는 점은 (1, 10), (2, 30), (3, 15), (4, 20), (5, 5) 5개가 됩니다.

 

3. color 옵션은 그래프 선의 색상을 정해줍니다.

 

4. marker='o'

점(marker)의 모양을 정합니다.

matplotlib에서는 다양한 모양의 marker를 지원하는데 자세한건 아래 링크를 보면 됩니다.

matplotlib marker 종류 = https://matplotlib.org/stable/api/markers_api.html

 

5. markerfacecolor='blue'

점(marker)의 색상을 정합니다.

 

6. markersize=12

점(marker)의 크기를 정합니다.

 

7. plt.title('Test graph')

그래프의 제목을 정합니다. 결과 이미지를 보면 가장 상단에 위 title이 적혀있습니다.

 

8. plt.xlabel('date')

x축의 이름을 정합니다. 마찬가지로 그래프의 x축 아래에 적혀있습니다.

 

9. plt.ylabel('amount')

y축의 이름을 정합니다. 마찬가지로 그래프의 y축 왼쪽에 적혀있습니다.

 

10. plt.show()

새로운 창을 띄워 그래프를 띄워줍니다.

 

11. plt.close()

그래프를 닫습니다. 그래프를 닫지 않으면 plt를 두 번째 사용할 때 첫 번째 그래프와 동시에 보이게 됩니다.

 

 

 

 

 

 

 

 

import matplotlib.pyplot as plt

list_x = [1, 2, 3, 4, 5]
list_y = [10, 30, 15, 20, 5]

plt.plot(list_x, list_y,
         color='skyblue',
         marker='o', markerfacecolor='blue',
         markersize=12)

plt.title('Test graph')
plt.xlabel('date')
plt.ylabel('amount')
# plt.show()
plt.savefig('test/img_test.png', # 생성할 image의 이름과 directory를 적습니다.
            facecolor='#eeeeee', # graph의 배경 색상을 설정합니다.
            edgecolor='black', # 그래프를 이미지로 변환했을 때의 테두리 색상을 정합니다.
            format='png', # 생성될 image의 확장자를 정합니다.
            dpi=200) # dpi 숫자가 더 높을수록 더 고해상도의 이미지로 저장됩니다.
plt.close()

이번엔 savefig method를 사용했는데 이것은 그려진 graph를 image로 생성해줍니다.

보면 test directory에 img_test.png라는 이미지가 생겼고 이 이미지를 열어보면 그래프를 볼 수 있습니다.

 

 

 

 

 

 

 

matplotlib에서는 단순히 값들의 list를 전달하는 것 뿐 아니라 함수의 형태를 전달할 수도 있습니다.

 

 

아래 예시는 numpy를 이용하여 sin graph를 그리는 예시입니다.

import matplotlib.pyplot as plt
import numpy as np

list_x = np.linspace(0, 2*np.pi, 10000)
list_y = np.sin(list_x)

plt.plot(list_x, list_y,
         color='skyblue')

plt.title('Test graph')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
plt.close()

 

 

 

 

 

 

 

아래 예시는 y = a * x + b 그래프를 그리는 예시입니다.

import matplotlib.pyplot as plt
import numpy as np

list_x = np.linspace(0, 10, 10000)
a = 2
b = 10
list_y = a*list_x + b

plt.plot(list_x, list_y,
         color='skyblue')

plt.title('y = a * x + b')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
plt.close()

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments