Matplotlib - 튜토리얼, plt.plot()

John Bae·2023년 9월 12일
1

Visualization

목록 보기
2/2

이 글의 모든 내용은 Matlplotlib Document (https://matplotlib.org/stable/index.html)를 참조하였습니다.

1. Matplotlib 설치법

Matplotlib은 파이썬에서 데이터 시각화를 위한 라이브러리 중 하나입니다. Matplotlib을 사용하면 그래프, 차트, 이미지 등을 그릴 수 있습니다. 이 라이브러리는 데이터 분석, 과학 연구, 엔지니어링 등 다양한 분야에서 데이터를 시각적으로 표현하고 이해하는 데 유용하게 사용됩니다. Matplotlib을 설치하기 위해서는 Anaconda Prompt에 아래와 같이 입력하면 됩니다.

pip install matplotlib

이 라이브러리를 사용할 때는 matplotlib.pyplot을 불러와야 합니다. 보통 matplotlib.pyplot을 불러올 때 plt라는 이름으로 불러옵니다.

import matplotlib.pyplot as plt

2. NumPy 설치법

NumPy는 파이썬의 과학 및 수학 연산을 위한 핵심 라이브러리 중 하나입니다. NumPy는 다차원 배열(ndarray)을 지원하며, 배열을 조작하고 연산하는 데 필요한 다양한 함수와 도구를 제공합니다. 이러한 다차원 배열은 고성능 수치 계산을 수행하고 대용량 데이터를 효율적으로 다루는 데 매우 유용합니다. 추후에 머신러닝이나 딥러닝을 진행하면서 데이터를 가공할 때 사용하기도 합니다. 아래의 코드를 Anaconda Prompt에 입력하여 다운 받을 수 있습니다.

pip install numpy

Numpy또한 설치 후 사용하기 위해서는 코드 맨 윗줄에서 import를 진행해주어야 합니다. Numpy를 불러올 때는 보통 np라는 이름으로 불러옵니다.

import numpy as np

3. plt.plot()

plt.plot()으로 선 그래프를 그릴 수 있습니다. plt.plot()의 구조는 아래와 같이 되어 있습니다.

plt.plot(x='',y='',marker='',linestyle='',color='',label='')
  • x: x값 설정
  • y: y값 설정
  • marker (optional): 마커는 데이터 포인트를 표시하는 데 사용
  • linestyle (optional): 선 스타일 지정
  • color (optional): 선 색상 지정
  • label (optional): 그래프 이름 지정

임의의 값으로 그래프 그리기

x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 20]

plt.plot(x, y)
plt.show()

해당 코드를 통해 아래와 같이 데카르트 좌표평면위에 (1,10), (2,15), (3,13), (4,18), (5,20)를 지나는 선 그래프를 그릴 수 있습니다.

임의의 함수로 그래프 그리기

이번에는 numpy들의 함수들을 통해 sin(x)함수를 그려보겠습니다. 먼저 x값들을 지정해주기 위해 np.linspace()라는 함수를 사용할 것입니다.np.linspace()의 구조는 아래와 같습니다.

np.linspace(처음값,마지막값,개수)

이해를 돕기 위해 처음값에 1, 마지막값에 10, 개수자리에는 10를 넣어보겠습니다.

value=np.linspace(1,10,10)
print(value)

이렇게 하면 결과 값으로 1부터 10까지 일정한 간격을 가진 10개의 값이 나올 것입니다. 원하는 숫자를 넣어보면서 np.linspace()에 대해서 익혀보시면 좋을 것 같습니다.

다음은 np.sin()이라는 함수입니다. 이 함수는 수학시간에 배웠었던 sin()함수를 그려주는 함수입니다. 아래의 코드를 살펴보며 알아봅시다.

x = np.linspace(0, 10, 100)
y = 2 * np.sin(2 * x) + 4
plt.plot(x, y)
plt.show()

첫번째 줄은 0과 10사이의 값에서 일정한 간격을 가진 100개의 값을 뽑아내어 x값으로 저장하였습니다. 이렇게하여 최대한 연속된 값을 x에 저장하게 합니다. 그리고 두번째 줄에서 사인함수를 입력해줍니다. 제가 입력한 함수는 수식으로 적으면 아래와 같습니다.

이제 plt.plot()함수를 통해 그려보면 아래와 같습니다. 본래 사인함수는 최댓값 1, 최솟값 -1, 2pi를 주기로 가지는 함수이지만, x값대신 2x를, 그리고 sin()앞에 2를 곱하고, 4를 더했기 때문에 최댓값은 6 (1x2+4), 최솟값은 2 (-1x2+4) 주기는 pi (2pi/2)를 가지는 함수가 되었습니다.

주어진 데이터로 그래프 그리기

저는 주가데이터를 그래프로 그려보겠습니다. 주가데이터를 불러오는 법은 이 글(https://velog.io/@valence787/stockprice)을 참조해주시면 될 것 같습니다.

df=yf.download("005930.KS","2020-01-01","2020-12-31")
plt.plot(df['Close'])
plt.show()

위의 코드를 입력하여, 삼성전자의 주가를 2020년 1월 1일부터 12월 31일까지 다운 받아 종가를 그래프로 그릴 수 있습니다. 그래프는 아래의 그림을 참고하시면 됩니다.

참고사항

Juypter Notebook 환경(.ipynb파일)에서는 plt.show()를 입력하지 않아도 그래프가 출력이 되지만, 타 IDE(.py파일)에서는 plt.show()를 입력해야 그래프가 출력이 됩니다. 그래서 필자같은 경우에는 plt.show()도 넣은 상태로 작성하였지만, 환경에 따라 없어도 된다는 것을 알려드립니다.

4. 기타 참고 함수들

위의 그림에서 알수 있듯이 그래프를 그릴 때 정말 다양한 값들을 조정할 수 있습니다. 저는 이중에서 가장 많이 사용하는 함수들만 뽑아서 정리하겠습니다.

plt.figure(figsize=(가로 크기,세로 크기))

plt.figure()은 그래프의 크기를 정하는 함수 입니다.

plt.figure(figsize=(20,10))

plt.title("제목")

plt.title()은 그래프의 제목을 입력하는 함수입니다.

plt.title("YR2020 Samsung Electronics Stock Price")

plt.legend()

plt.legend()를 통해 여러개의 그래프가 있을 때, 어떤 색상의 그래프가 어떤 것을 설명하는 지 보여줄 수 있습니다. 다만, 이것을 사용하기 위해서는 plt.plot()을 설정할 때, label명이 정해져 있어야 합니다.

plt.plot(df['Close'], label="Samsung Electronics")
plt.legend()
plt.show()

위와 같이 코드를 작성하면 아래와 같이 표현할 수 있습니다.

plt.xlabel("x축이름"), plt.ylabel("y축이름")

plt.xlabel(), plt.ylabel()를 통해서 x축과 y축의 이름을 지정해줄 수 있습니다. x축과 y축 하나만 입력해도 사용할 수 있습니다.

plt.plot(df['Close'])
plt.xlabel("DATE")
plt.ylabel("Price")
plt.show()

profile
데이터를 공부하는 경영학도

0개의 댓글