Matplotlib로 그래프를 그리는 방법

17812 단어 파이썬matplotlib

개요



Matplotlib에서 그래프를 작성하는 방법을 자신의 비망록으로 정리합니다.

우선 하나의 그래프를 쓰고 싶을 때



가로축(x)과 세로축(y)을 설정하고, plt.plot(x, y)로 할 뿐.

우선 하나 그리기.py
import matplotlib.pyplot as plt
import numpy

x = np.linspace(0, 10)
y = np.sin(x)
plt.plot(x, y)
plt.show()



plt 인수



c : 색상. "r", "g", "b", "c", "m", "y"등으로 그래프의 색을 바꿀 수 있다.
marker : 마커의 형태를 지정. "o", "^", "v", "+"등이 있다.
lw : 선의 두께를 지정합니다. 선을 지우고 싶을 때는 0으로 한다.
alpha : 투명도를 지정. 0에 가까울수록 투명하게 접근한다.
label : 이름을 지정. 여러 그래프를 작성할 때 이름을 지정하는 것이 좋습니다. (범례에 표시할 수 있다)
    ※범례의 붙이는 방법은 후술.

plt 인수.py
x = np.linspace(0, 10)
y = np.sin(x)
plt.plot(x, y, c="r", marker="^", lw=1, alpha=0.5, label="test")
plt.show()



그래프에 다양한 정보 추가



〇〇으로 그래프에 다양한 정보를 추가할 수 있다.
plt.title에서 제목 추가
plt.xlabe/ylabel에서 x축/y축 레이블 추가
plt.xlim/ylim에서 x축/y축의 최소값과 최대값 지정
※최대값과 최소값은 직접 수치를 넣어도 되지만, 하기 예와 같이 y의 np.min등으로 지정해도 좋다
plt.grid에서 그래프에 그리드 표시
plt.legend에서 그래프에 범례 표시

그래프에 정보 추가.py
x = np.linspace(0, 10)
y = np.sin(x)

plt.plot(x, y, c="c", marker="+", lw=0, alpha=0.5, label="test1")
plt.title("Figure_test")
plt.xlabel("axis_x")
plt.ylabel("axis_y")
plt.xlim(0, 15)
plt.ylim(np.min(y)-2, np.max(y)+2)
plt.grid()
plt.legend()

plt.show()



여러 차트 그리기



처음에 plt.figure()로 큰 상자를 준비한다. 상자의 크기는 figsize로 지정 가능.
준비한 상자 안에 plt.subplot()로 복수의 그래프를 넣어 가는 이미지.
plt.subplot()의 첫 번째 인수에 행, 두 번째 인수에 열, 세 번째 인수에 번호를 지정합니다.
번호는 좌측 상단이 1부터 시작하여 오른쪽 방향, 아래 방향 순으로 숫자가 커진다.

여러 차트 표시.py
x = np.linspace(0, 10)
y1 = np.sin(x)
y2 = x
y3 = x ** 4
y4 = np.cos(2*x)

plt.figure(figsize=(8, 5))

plt.subplot(2, 2, 1) # 左上
plt.plot(x, y1, c="r", marker="^", lw=1, alpha=0.5, label="left_up")

plt.subplot(2, 2, 2) # 右上
plt.plot(x, y2, c="g", marker="o", lw=1, alpha=0.5, label="right_up")

plt.subplot(2, 2, 3) # 左下
plt.plot(x, y3, c="b", marker="v", lw=1, alpha=0.5, label="left_down")

plt.subplot(2, 2, 4) # 右下
plt.plot(x, y4, c="y", marker="+", lw=1, alpha=0.5, label="right_down")

plt.show()



다음과 같이 쓸 수 있다. (결과는 ↑와 동일)
subplots()에서 fig라는 큰 상자 안에 그래프를 어디에 배치할지를 먼저 지정한다.
ax[행, 열]로 위치를 지정하여 그래프를 그립니다.
(이쪽의 쓰는 방법은 또 따로 정리할까라고 생각합니다.)

여러 그래프 표시 2.py
x = np.linspace(0, 10)
y1 = np.sin(x)
y2 = x
y3 = x ** 4
y4 = np.cos(2*x)

fig, ax = plt.subplots(2, 2, figsize=(8, 5))

# 左上
ax[0, 0].plot(x, y1, c="r", marker="^", lw=1, alpha=0.5, label="left_up")

# 右上
ax[0, 1].plot(x, y2, c="g", marker="^", lw=1, alpha=0.5, label="right_up")

# 左下
ax[1, 0].plot(x, y3, c="b", marker="^", lw=1, alpha=0.5, label="left_down")

# 右下
ax[1, 1].plot(x, y4, c="y", marker="^", lw=1, alpha=0.5, label="right_down")

plt.show()




요약



매우 기본적인 일뿐입니다만, 초보자의 자신용으로, 자주(잘) 사용하는 기능만 써 보았습니다.
추천 기능이 있으면 댓글을 달아주세요.

좋은 웹페이지 즐겨찾기