기본 그래프 그리기
예제1
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.show()
pyplot.plot() 함수에 하나의 숫자 리스트를 입력함으로써 아래와 같은 그래프가 그려집니다.
plot() 함수는 리스트의 값들이 y 값들이라고 가정하고, x 값 [0, 1, 2, 3]을 자동으로 만들어냅니다.
matplotlib.pyplot 모듈의 show() 함수는 그래프를 화면에 나타나도록 합니다.
plt.plot([1, 2, 3, 4])는 y 값을 생성하여 수직으로 상승하는 숫자들을 생성한다.
plt.plot([1, 2, 3, 4, 5],[1, 2, 3, 4, 5])
plt.show()
1,2,3,4,5 를 붙여보니 x 축 을 생성했다
plt.plot([x],[y]) x,y 값 다쓸경우
plt.plot([y]) 값을 하나만 쓸경우
예제2
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
plot() 함수는 다양한 기능을 포함하고 있어서, 임의의 개수의 인자를 받을 수 있습니다.
예를 들어, 아래와 같이 입력하면, x-y 값을 그래프로 나타낼 수 있습니다.
스타일 지정하기
예제
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()
x, y 값 인자에 대해 선의 색상과 형태를 지정하는 포맷 문자열 (Format string)을 세번째 인자에 입력할 수 있습니다.
포맷 문자열 ‘ro’는 빨간색 (‘red’)의 원형 (‘o’) 마커를 의미합니다.
또한, 예를 들어 ‘b-‘는 파란색 (‘blue’)의 실선 (‘-‘)을 의미합니다.
matplotlib.pyplot 모듈의 axis() 함수를 이용해서 축의 범위 [xmin, xmax, ymin, ymax]를 지정했습니다.
결과는 아래와 같습니다.
plot 은 값의 지정,
axis 축 의 크기 지정
plot 에 각각 다른 색과 그래프 형식을 지정
가용 마커들
- '.': 작은 점
- ',': 픽셀
- 'o': 원형
- 'v': 아래쪽 삼각형
- '^': 위쪽 삼각형
- '<': 왼쪽 삼각형
- '>': 오른쪽 삼각형
- '1': 아래쪽 방향으로 플랫
- '2': 위쪽 방향으로 플랫
- '3': 왼쪽 방향으로 플랫
- '4': 오른쪽 방향으로 플랫
- 's': 사각형
- 'p': 오각형
- '*': 별표
- 'h': 육각형1
- 'H': 육각형2
- '+': 플러스 기호
- 'x': X 기호
- 'D': 다이아몬드
- 'd': 작은 다이아몬드
여러 개의 그래프 그리기
import matplotlib.pyplot as plt
import numpy as np
# 200ms 간격으로 균일하게 샘플된 시간
t = np.arange(0., 5., 0.2)
# 빨간 대쉬, 파란 사각형, 녹색 삼각형
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
Matplotlib에서는 일반적으로 NumPy 어레이를 이용하게 되는데,
사실 NumPy 어레이를 사용하지 않더라도 모든 시퀀스는 내부적으로 NumPy 어레이로 변환됩니다.
이 예제는 다양한 스타일을 갖는 여러 개의 곡선을 하나의 그래프로 나타냅니다.
결과는 아래와 같습니다.
t = np.arange(0., 5., 0.2) = 0에서 5까지, 0.2 씩
np.arange(0., 5., 0.2)는 NumPy의 arange() 함수를 사용하여 0부터 5까지 (5는 포함되지 않음) 0.2 간격으로 숫자들을 생성합니다. 이 값들은 0부터 시작하여 5 직전까지 0.2씩 증가하는 일련의 값들을 생성합니다.
즉, t에는 0부터 4.8까지의 숫자들이 0.2 간격으로 포함됩니다. 이러한 t 배열은 주로 시간 또는 x 축 값으로 사용되는 등 여러 그래프에서 입력 변수로 자주 활용됩니다.
(0., 5., 0.2)
0 과 5에 . 이붙은 이유는 부동소수점으로 표시하기 위함이며, 없으면 0에서 5까지 정수로만 표현하게된다.
3년간 3명의 성적 변화 1년씩 측정