Pythonとmatplotlibで反比例のグラフのアニメーションを作ってみた
分数関数について考えていたときに,ふと,反比例の式 y = \frac{k}{x}(k \neq 0 )の k を動かしたら,反比例への理解が深まる人もいるだろうと思い,Pythonとmatplotlibでアニメーションを作ってみることにしました.
できたものがこちら.
ここからはコードの紹介です.
以前ニュートン法の過程をアニメーション化したときとは異なり,今回はFuncAnimationを使いました.タイトルを変化させたかったためです.
↓ニュートン法の過程をアニメーションにした記事↓
今回のコードがこちら.
import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np
fig = plt.figure(figsize=(5,5))
artists = []
x1 = np.arange(0.05, 10.05, 0.01)
x2 = np.arange(-10.05, -0.05, 0.01)
asymptote_num = np.arange(-15, 16, 5)
asymptote_zero = np.zeros(7)
def plot_inv_prop(k):
plt.clf() # 描画内容と設定を全て消去
plt.title('inverse proportion y = {} / x '.format(k))
plt.xlim(-10,10) # x軸方向の描画範囲の指定
plt.ylim(-10,10) # y軸方向の描画範囲の指定
# 双曲線の描画
y1 = k / x1
y2 = k / x2
img = plt.plot(x1, y1, color='blue')
plt.plot(x2, y2, color='blue')
# 漸近線の描画
plt.plot(asymptote_num, asymptote_zero, color='black', linestyle="dashed", linewidth=1)
plt.plot(asymptote_zero, asymptote_num, color='black', linestyle="dashed", linewidth=1)
ani = animation.FuncAnimation(fig, plot_inv_prop, frames=range(10,0,-1), interval=1000)
# plt.show()
ani.save('hanpirei.gif')
おしまい.