在 Matplotlib 中動畫散佈圖
散佈圖是可視化兩個或多個變數之間關係的有用工具。當資料隨時間變化時,對散點圖進行動畫處理以了解關係如何演變會很有幫助。
更新位置、大小和顏色
製作動畫對於散點圖,您需要更新動畫每一幀的點的位置、大小或顏色。這可以分別使用 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 參數被呼叫一次來初始化繪圖,而更新函數在每一幀被呼叫。
<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中文網其他相關文章!