AI 수학
matplotlib
자동매매
2026. 1. 31. 16:55
기본 명령
%matplotlib inline
# 주피터 노트북에 plot하지 못하면 추가
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-5,5) # x축: -5~5사이의 50개 배열 할당
y=x**2 # y축
plt.plot(x,y) # plot함수를 이용하여 plot
plt.show() # plot을 나타낸다.

축의 label 표시 / 그래프의 Title 표시 / grid 표시 / 범례 / 선의 스타일
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5, 5)
y_1 = 2 * x
y_2 = 3 * x
# 축의 라벨
plt.xlabel("x value", size=14) # 축 라벨의 문자 크기를 14로 지정
plt.ylabel("y value", size=14)
# 그래프의 타이틀
plt.title("My Graph")
# 그리드 표시
plt.grid()
# 플롯 시에 범례와 선의 스타일을 지정
plt.plot(x, y_1, label="y1")
plt.plot(x, y_2, label="y2", linestyle="dashed")
plt.legend() # 범례를 표시
plt.show()

한글 글꼴 사용
# 한글 글꼴 사용 모듈 설치
!pip install koreanize-matplotlib
import koreanize_matplotlib # 이 줄만 추가하면 자동으로 한글 설정 완료
산포도
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1.2, 2.4, 0.0, 1.4, 1.5, 0.3, 0.7]) # x좌표
y = np.array([2.4, 1.4, 1.0, 0.1, 1.7, 2.0, 0.6]) # y좌표
plt.scatter(x, y) # 산포도의 플롯
plt.grid()
plt.show()

히스토그램
import numpy as np
import matplotlib.pyplot as plt
data = np.array([0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 7, 8, 8, 9])
plt.hist(data, bins=10) # 히스토그램 bins는 기둥의 수
plt.show()

사용 예
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3) # x의 범위를 지정
y_1 = 1.5*x # x에 연산을 시행하는 y_1으로 한다
y_2 = -2*x + 1 # x에 연산을 시행하는 y_2로 한다
# 축의 라벨
plt.xlabel("x value", size=14)
plt.ylabel("y value", size=14)
# 그래프의 타이틀
plt.title("My Graph")
# 그리드 표시
plt.grid()
# 플롯 범례와 선의 스타일을 지정
plt.plot(x, y_1, label="y1")
plt.plot(x, y_2, label="y2", linestyle="dashed")
plt.legend() # 범례를 표시
plt.show()

벡터 화살표 PLOT ( quiver()함수 )
pyplot.quiver([X, Y], U, V, [C], **kwargs)
X,Y: 화살표의 BASE
U,V: 방향 좌표
C: 색상
[기타] angles: 화살표 각도 결정방법
scale_units: 스케일 단위
scale: 스케일
import numpy as np
import matplotlib.pyplot as plt
# 화살표를 그리는 함수
def arrow(start, size, color):
plt.quiver(start[0], start[1], size[0], size[1], angles="xy", scale_units="xy", scale=1, color=color)
# 화살표의 시작점
s = np.array([0, 0]) # 원점
# 벡터
a = np.array([2, 3]) # 세로 벡터를 나타낸다
arrow(s, a, color="black")
# 그래프 표시
plt.xlim([-3,3]) # x의 표시 범위
plt.ylim([-3,3]) # y의 표시 범위
plt.xlabel("x", size=14)
plt.ylabel("y", size=14)
plt.grid()
plt.gca().set_aspect("equal") # 가로세로비를 같게
plt.show()
