기본 콘텐츠로 건너뛰기

라벨이 rotation인 게시물 표시

[matplotlib]quiver()함수

함수의 그래프: 유리함수와 점근선

다음 그림들은 전자책 파이썬과 함께하는 미분적분 의 5.3장에 수록된 그래프들과 코드들입니다. import numpy as np import pandas as pd from sympy import * import matplotlib.pyplot as plt import seaborn as sns sns.set_style("darkgrid") #그림 5.3.1 x=symbols('x') f=(x**2-1)/(x**2+x-6) x1, x2, x3=np.linspace(-6, -3.01, 30), np.linspace(-2.99, 1.99, 30), np.linspace(2.01, 6, 30) y1, y2, y3=[f.subs(x, i) for i in x1], [f.subs(x, i) for i in x2], [f.subs(x, i) for i in x3] plt.figure(figsize=(4, 3)) plt.plot(x1, y1, color="g", label="f(x)") plt.plot(x2, y2, color="g") plt.plot(x3, y3, color="g") plt.vlines(-3, -10, 10, ls="--", color="brown" , label="x=-3") plt.vlines(2, -10, 10, ls="--", color="brown" , label="x=2") plt.hlines(1, -6, 6, ls="--", color="r" , label="y=1") plt.xlabel("x",loc="right", fontsize="11") plt.ylabel("y", rotation="hori...

함수 그래프 그리기: 최대와 최소 찾기

작성된 그림은 전자책 파이썬과 함께하는 미분적분 에서 Chapter 5.1에서 소개한 여러 그래프들과 그 코드입니다. import numpy as np from sympy import * import matplotlib.pyplot as plt import seaborn as sns 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) CH 5.1 #그림 5.1.1 x=np.linspace(-4,4, 100) y=x**2 plt.figure(figsize=(4, 3)) plt.plot(x, y, color="g", label=r"f(x)=$x^2$") for i in np.arange(-3, 4): if i==-1: nme=r"$\frac{df(x)}{dx} < 0$" elif i==1: nme=r"$\frac{df(x)}{dx} \geq 0$" else: nme="" plt.plot(x, tgline(2*i, i, i**2, x), ls="--", alpha=0.5, color=['r' if i < 0 else 'b'][0], label=nme) plt.xlabel("x", loc="right", fontsize="11") plt.ylabel("y...

[matplotlib] 조각 함수 그리기

조각 함수(pairwise function) 작성 다음 함수 f(x)와 같이 일정한 구간별로 다른 값을 가지는 함수를 조각함수라고 합니다. $$f(x) =\begin{cases}4& \text{for}\; x\lt 0\\3-x^2& \text{for}\; 0\lt x \le 2\\ 2x-6& \text{for}\; x \gt 2\end{cases}$$ 선 그래프를 작성하기 위해 각 조건에 맞는 x와 y 값을 설정합니다. import numpy as np import matplotlib.pyplot as plt x=np.linspace(0, 2, 50) y=3-x**2 x1=np.linspace(2, 7, 50) y1=2*x1-6 x, y 축을 점 (0, 0)을 통과하도록 조정하기 위해 다음 함수를 적용합니다. plt.subplots(nrows=1, ncols=1, figsize=()) 여러개의 그래프를 그리기 위한 함수 그림들이 배열되는 구조는 nrows(행의 수), ncols(열의 수)로 지정 이 함수는 전체적인 그림을 위한 객체, 그 객체내에 각 그래프의 좌표의 수들을 반환 다음 코드는 1행, 1열로 1개의 그래프를 작성하므로 그림 객체를 나타내는 fig와 그 그래프의 좌표쌍을 나타내는 ax 객체를 반환 figsize=(가로, 세로), 그래프의 크기를 나타냄 fig, ax=plt.subplots(figsize=(4, 3)) ax.plot(x, y, color="g", label=r"y=3-$x^2$") ax.plot(x1, y1, color="brown", label="y=2x-6") .plot(x, y, color, ls, lw, label): x에 대응하는 y에 대한 선그래프를 작성 ls: linestyle , 선의 형태를 지정 ...