기본 콘텐츠로 건너뛰기

라벨이 spines인 게시물 표시

[matplotlib]quiver()함수

벡터와 행렬에 관련된 그림들

다음의 코드들과 그림들은 전자책 파이썬과 함께 하는 선형대수 에 수록된 것입니다. import numpy as np import matplotlib.pyplot as plt import seaborn sns.set_style("darkgrid") #fig 1.1.1 fig, ax=plt.subplots(figsize=(3,2)) cord=[(0,0), (3,1),(2,3)] nme=["O","A","B"] col=['g','b','r'] for i, j in enumerate(cord): ax.scatter(j[0], j[1], color="white", edgecolors=col[i]) ax.text(j[0], j[1]+0.15, nme[i], color=col[i], fontweight="bold") ax.arrow(0,0, 3, 1, color="b", head_width=0.1) ax.arrow(0,0, 2, 3, color="r", head_width=0.1) ax.text(1, 0.5, r"$\vec{a}$", color="b") ax.text(1, 1.8, r"$\vec{b}$",color="r") 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) ax.grid(True) plt.show() #fig112 a=np.array([10,15])...

[matplotlib] 접선식 생성과 접선 그리기

접선 그리기 함수의 특정한 점에서 접선의 기울기는 그 지점에서의 미분값과 같습니다. a=symbols("a") f=(a-1)**2 df=f.diff('a') df 2a - 2 함수 f위의 점(3, f(3))에서의 접선 식은 다음과 같이 계산할 수 있습니다. slope=df.subs(a, 3); slope 4 $$\begin{align} y&=\text{slope}\times x+b \\ b&= y - \text{slope}\times x\\&=f(3)-f^\prime(3)\times 3\end{align}$$ b=f.subs(a, 3)-slope*3 eq=slope*a+b; eq 4a−8 위에서 생성한 두 식 f와 eq(접선식)에 대한 그래프를 작성합니다. 그래프 작성에 필요한 함수 plot()과 scatter() 그리고 축 설정은 조각함수 작성 에서 적용한 것과 같습니다. x=np.linspace(-1, 5, 100) fy=[f.subs(a, i) for i in x] eqy=[eq.subs(a, i) for i in x] fig, ax=plt.subplots(figsize=(4, 3)) ax.plot(x, fy, color="g", label=r"f(x)=(x-1)^2") ax.plot(x, eqy, color="b", label="g(x)=4x-8") ax.scatter(3, f.subs(a, 3), s=50, c="b") 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(Fa...

|x|, 1/x 그래프_spines

내용 f(x)=|x| $f(x)=\frac{1}{x}$ f(x)=|x| 함수 f(x)=|x|의 그래프를 작성합니다. 함수는 sympy 패키지의 함수들을 사용하여 생성합니다. import numpy as np import pandas as pd from sympy import * import matplotlib.pyplot as plt x=symbols('x') f=abs(x); f |x| sympy객체에 값을 입력하기 위해 .sub(변수, 대체할 값) 을 적용합니다. a=np.linspace(-2, 2, 100) b=[float(f.subs(x, i)) for i in a]; b[:3] [2.0, 1.9595959595959596, 1.9191919191919191] matplolib에 의한 그래프는 그림 박스내에 표시합니다. 그러므로 x=0, y=0의 축은 표시되지 않습니다. 그러므로 이 축을 (0, 0)에 맞추기 위해서는 박스형식의 기존 축을 제거(plt.axis('off'))하고 다음 함수를 사용하여 새로운 축을 작성할 수 있습니다. plt.axhline(y=0, x min , x max ) plt.hlines(y=0, x min , x max ) plt.axvline(x=0, y min , y max ) plt.vlines(x=0, y min , y max ) 다음 그래프는 하나의 그림 프레임을 2열로 분리한 것으로 plt.subplot(행 열 번호) 를 사용한 것입니다. 또한 각 그래프의 간격을 조정하기 위해 plt.subplots_adjust() 함수를 사용합니다. 이 함수의 인수 중 wspace 는 그래프간의 가로 간격, hspace 는 세로간격을 조정합니다. plt.figure(dpi=100) plt.subplots_adjust(wspace=0.5) plt.subplot(121) plt.plot(a, b, label='f(x)=|x|...