다음 그림들은 전자책 파이썬과 함께하는 미분적분의 3장과 4장에 수록된 그래프들과 코드들입니다.
import numpy as np
import pandas as pd
from sympy import *
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("darkgrid")
def tgline(slope, x0, y0, x):
b=y0-slope*x0
re=slope*x+b
return(re)
def scantline(x0, y0, x1, y1, x):
s, b=symbols("s, b")
eq1=x0*s+b-y0
eq2=x1*s+b-y1
re=solve([eq1, eq2], (s, b))
re1=float(re[s])*x+float(re[b])
return(re1)
def axisTran(ax):
ax.spines['left'].set_position(("data", 0))
ax.spines['bottom'].set_position(("data", 0))
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
#그림 3.1.1
x=np.linspace(-5, 5, 100)
y=2**x
g=0.5**x
plt.figure(figsize=(4, 3))
plt.plot(x, y, color="g", label=r"$y=2^x$")
plt.plot(x, g, color="brown", label=r"$y=0.5^x$")
plt.ylim([0, 10])
plt.xlabel("x", fontsize="11")
plt.ylabel("y", rotation="horizontal", fontsize="11")
plt.legend(loc="lower right", labelcolor=["g", "brown"], frameon=False)
plt.show()
#그림 3.2.1
x=np.linspace(-1, 5, 100)
y=np.exp(x)
px=[-1, 0, 0.5, 1, 2]
plt.figure(figsize=(4, 3))
plt.plot(x, y, color="k", label="f(x)=exp(x)")
col=["g", "b", "r", "brown", "orange"]
for i, j in enumerate(px):
plt.scatter(j, np.exp(j), s=50, c=col[i])
plt.plot(x, tgline(np.exp(j), j, np.exp(j), x), ls="--", alpha=0.6, color=col[i])
plt.xlabel("x", fontsize="11")
plt.ylabel("y", rotation="horizontal", fontsize="11")
plt.ylim(-1, 10)
plt.legend(loc=(0.7, 0.15), labelcolor="k")
plt.show()
#그림 3.3.1
x1=np.linspace(0.001, 5, 100)
g=np.log(x1)
x2=np.linspace(-3,5, 100)
f=np.exp(x2)
plt.figure(figsize=(4, 3))
plt.plot(x1, g, color="r", label=r"$g(x)=\log_2 x$")
plt.plot(x2, f, color="b", label=r"$f(x)=2^x$")
plt.plot(x2, x2, color="g", ls="--", label="y=x")
plt.xlabel("x", fontsize="11")
plt.ylabel("y", rotation="horizontal", fontsize="11")
plt.ylim(-2, 5)
plt.legend(loc="best", labelcolor=['b', 'r', 'g'], frameon=False)
plt.show()
#그림 4.1.3
x=np.arange(0, 360)
y=np.sin(np.radians(x))
y1=np.cos(np.radians(x))
plt.figure(figsize=(4, 3))
plt.plot(x, y, color="b", label="f(x)=sin(x)")
plt.plot(x, y1, color="r", label=r"$\frac{df(x)}{dx}$=cos(x)")
plt.xticks([0, 90, 180, 270, 360], [0, r"$\frac{\pi}{2}$", r"$\pi$",r"$\frac{3\pi}{2}$", r"$2\pi$" ])
plt.xlabel("x", fontsize="11")
plt.ylabel("y", rotation="horizontal", fontsize="11")
plt.legend(loc="best", labelcolor=['b', 'r'])
plt.show()




댓글
댓글 쓰기