728x90
728x170
*matplotlib 라이브러리를 이용한 그래프 그리기
# default 설정
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
np.random.seed(1)
x = np.arange(10) # 0~9 사이 랜덤 수
y = np.random.randn(10) # 0~1 사이 랜덤 수
print(x)
print(y)
[0 1 2 3 4 5 6 7 8 9]
[ 1.62434536 -0.61175641 -0.52817175 -1.07296862 0.86540763 -2.3015387
1.74481176 -0.7612069 0.3190391 -0.24937038]
# 그래프 표시
plt.plot(x, y) # 꺾은선 그래프를 등록
plt.show()
EX1) f(x) = 2x + 3
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def f(x):
return 2 * x + 3
x = np.arange(-5, 5, 1)
y = f(x)
print(x, y)
[-5 -4 -3 -2 -1 0 1 2 3 4] [-7 -5 -3 -1 1 3 5 7 9 11]
plt.plot(x, y)
plt.grid(True) # Grid 추가
plt.show()
EX2) f(x) = (x-2)x(x+2)
def f(x):
return (x - 2) * x * (x + 2)
print(f(1))
print(f(np.array([1, 2, 3])))
-3
[-3 0 15]
x = np.arange(-3, 3.5, 0.5) # 0.5 간격으로 -3~3까지의 숫자 생성
print(x)
[-3. -2.5 -2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2. 2.5 3. ]
x = np.linspace(-3, 3, 10) # -3~3까지의 숫자 생성. 마지막 인자 값이 클수록 곡선이 완만해짐.
print(np.round(x, 2)) # 소수점 둘째자리까지 출력
y = f(x)
[-3. -2.33 -1.67 -1. -0.33 0.33 1. 1.67 2.33 3. ]
plt.plot(x, y)
plt.show()
EX3) f(x) = ax^3 + bx^2 + cx + d
싱글 그래프
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def f(a, b, c, d, x):
return (a * x ** 3) + (b * x ** 2) + (c * x) + d
x = np.linspace(-3, 3, 100)
a = 1
b = 2
c = 3
d = 4
y = f(a, b, c, d, x)
plt.plot(x, y, color='orange') # 곡선 색깔 : Orange
plt.grid(True) # Grid 생성
plt.show()
멀티 그래프
# 임의의 a, b, c, d 값 설정
l = [1, 2, 3, 4]
m = [4, 3, 5, 1]
n = [7, 6, 2, 3]
k = [3, 8, 9, 2]
plt.subplot(2, 2, 1)
plt.plot(x, f(l[0], l[1], l[2], l[3], x), color = 'red')
plt.subplot(2, 2, 2)
plt.plot(x, f(m[0], m[1], m[2], m[3], x), color = 'green')
plt.subplot(2, 2, 3)
plt.plot(x, f(n[0], n[1], n[2], n[3], x), color = 'blue')
plt.subplot(2, 2, 4)
plt.plot(x, f(k[0], k[1], k[2], k[3], x), color = 'orange')
[<matplotlib.lines.Line2D at 0x285e5830b08>]
이변수 함수 3차원 그래프 : f(x0, x1) = (2x0^2 + x1^2) * exp(-(2x0^2 + x1^2))
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
def f(x0, x1):
r = 2 * x0 ** 2 + x1 ** 2
return r * np.exp(-r)
# 임의의 값 입력
xn = 20
x0 = np.linspace(-2, 2, xn)
x1 = np.linspace(-2, 2, xn)
y = np.zeros((len(x0), len(x1)))
for i0 in range(xn):
for i1 in range(xn):
y[i1, i0] = f(x0[i0], x1[i1])
xx0, xx1 = np.meshgrid(x0, x1)
ax = plt.subplot(1, 1, 1, projection='3d')
ax.plot_surface(xx0, xx1, y, color = 'blue', rstride = 1, cstride = 1, alpha = 0.3, edgecolor = 'black')
<mpl_toolkits.mplot3d.art3d.Poly3DCollection at 0x285e5a1f488>
728x90
그리드형(광고전용)
'Source Code > Python' 카테고리의 다른 글
[Python] 회문/팰린드롬(Palindrome) 판단하기 (0) | 2022.06.16 |
---|---|
[Python] 괄호 매칭 검사 프로그램 (0) | 2022.05.30 |
[Python] 단순 연결 리스트(Singly Linked List) 프로그램 (0) | 2022.04.02 |
[Python] 다항식(Polynomial) 선형 리스트 표현과 계산 프로그램 (0) | 2022.03.26 |
[Python] 선형 리스트(Linear List) 처리 프로그램 (0) | 2022.03.26 |
[Python] 파일 입출력 예제 (0) | 2021.08.07 |
[Python] BMI 계산기 (0) | 2019.05.02 |
[Python] 화씨온도(℉)를 섭씨온도(℃)로 변환하기 (0) | 2019.04.23 |