Matplotlib で散布図をアニメーション化する
散布図は、2 つ以上の変数間の関係を視覚化するのに便利なツールです。データが時間の経過とともに変化する場合、散布図をアニメーション化して関係がどのように変化するかを確認すると便利です。
位置、サイズ、色の更新
アニメーション化するには散布図の場合は、アニメーションの各フレームでポイントの位置、サイズ、色を更新する必要があります。これは、Scatter オブジェクトの set_offsets、set_sizes、set_array メソッドをそれぞれ使用して実行できます。
<code class="python">scat = plt.scatter(x, y, c=c) # Update position scat.set_offsets(new_xy) # Update size scat.set_sizes(new_sizes) # Update color scat.set_array(new_colors)</code>
FuncAnimation の使用
matplotlib の FuncAnimation クラス。アニメーション モジュールを使用すると、アニメーションの各フレームで散布図を自動的に更新できます。 init_func 引数はプロットを初期化するために 1 回呼び出され、更新関数はフレームごとに呼び出されます。
<code class="python">import matplotlib.animation as animation def update(i): # Update data x, y, c = get_data(i) # Update plot scat.set_offsets(x, y) scat.set_array(c) return scat, ani = animation.FuncAnimation(fig, update, interval=5) plt.show()</code>
例
次の例では、次のアニメーションを作成します。点がランダムに移動し、時間の経過とともに色が変化する散布図:
<code class="python">import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation # Create random data num_points = 50 xy = (np.random.rand(2, num_points) - 0.5) * 10 c = np.random.rand(num_points) # Setup figure and axes fig, ax = plt.subplots() scat = ax.scatter(xy[0], xy[1], c=c, s=30) # Define animation update function def update(i): # Update data xy += np.random.rand(2, num_points) * 0.02 c = np.random.rand(num_points) # Update plot scat.set_offsets(xy) scat.set_array(c) return scat, # Create animation ani = animation.FuncAnimation(fig, update, interval=10) plt.show()</code>
このアニメーションは、ランダムに移動し、時間の経過とともに色が変化する 50 個の点の散布図を示します。
以上がMatplotlib で散布図をアニメーション化して時変データを視覚化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。