다음 그림들은 전자책 파이썬과 함께하는 미분적분의 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()
댓글
댓글 쓰기