기본 콘텐츠로 건너뛰기

라벨이 legend인 게시물 표시

[matplotlib]quiver()함수

함수의 그래프: 평균값 정리

다음 그림들은 전자책 파이썬과 함께하는 미분적분 의 5.5장에 수록된 그래프들과 코드들입니다. 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) #그림 5.5.1 x=symbols('x', real=True) f=x**3+2*x**2 df=f.diff(x) cp=solve(df) a=np.linspace(-1.618, 0.618, 100) y=[f.subs(x, i) for i in a] dy=[df.subs(x, i) for i in a] plt.figure(figsize=(4,3)) plt.plot(a, y, color='g', label="f(x)") plt.plot(a, dy, color='b', ls="dashed", alpha=0.3, label=r"$\frac{df(x)}{dx}$") idx=[(a[0],"r","A"), (cp[0], "b","D"), (cp[1], "k","C"), (a[-1], "brown","B")] for i in idx: plt.scatter(i[0], f.subs(x, i[0]), s=30, c=i[1], label=f"{i[2]}") plt.ylim(-0.5, 1.5) plt.xlabel("x") plt.ylabel("y", rotation="horizo...

[matplotlib] plot()

plot() 함수 plt.plot(x, y) 함수에 x와 y 데이터를 입력하여 플롯을 작성합니다. 이 경우 y 값만을 제공하는 경우 y의 인덱스를 x값으로 인식합니다. 또한 함수에 의한 결과 역시 좌표의 값이 됩니다. import numpy as np import pandas as pd from sklearn.preprocessing import StandardScaler import yfinance as yf import matplotlib as mpl import matplotlib.pyplot as plt plt.rcParams['font.family'] ='NanumGothic' plt.rcParams['axes.unicode_minus'] =False import seaborn as sns matplotlib하에서 작성된 플롯이지만 seaborn에서 제공하는 플롯의 스타일을 사용할 수 있습니다. 위 코드 sns.set_style() 함수에 의해 이루어집니다. np.random.RandomState(3) x=np.arange(20) y=np.random.standard_normal(20) plt.figure(figsize=(4,3)) plt.plot(x,y) plt.show() 다음 코드의 plt.subplots(rows, columns, figsize, gridspec_kw, …) 는 그림을 작성하는 프레임을 여러개의 하위그룹으로 구분하기 위한 함수입니다. 이 함수는 다양한 매개변수를 가질 수 있습니다. rows, columns는 전체 그림 프레임을 분리하기 위한 행과 열수를 지정, 다음 코드는 1행 2열로 2개의 하위 그림을 작성 전체 프레임의 이름 fig, 두 개의 하위 프레임은 각각 ax1, ax2로 지정 하위 그림 프레임은 인덱스를 사용하여 지정할 수도 있음 행 또는 열이 1개인 경우는 벡터로 고려되므로 인덱스는 [0], [1] 과 같이 1개로 표시 그러나 하위 프레...

|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|...