日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

matplotlib之简单动画制作

發布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib之简单动画制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單動畫

動畫即是在一段時間內快速連續的重新繪制圖像的過程.

matplotlib提供了方法用于處理簡單動畫的繪制:

import matplotlib.animation as ma def update(number):pass# 每隔30毫秒,執行一次update ma.FuncAnimation(mp.gcf(), # 作用域當前窗體update, # 更新函數的函數名interval=30 # 每隔30毫秒,執行一次update )

案例: 隨機生成各種顏色的100個氣泡, 讓他們不斷增大.

  • 隨機生成100個氣泡.
  • 每個氣泡擁有四個屬性: position, size, growth, color
  • 把每個氣泡繪制到窗口中.
  • 開啟動畫,在update函數中更新每個氣泡的屬性并重新繪制
  • """ 簡單動畫 1. 隨機生成100個氣泡. 2. 每個氣泡擁有四個屬性: position, size, growth, color 3. 把每個氣泡繪制到窗口中. 4. 開啟動畫,在update函數中更新每個氣泡的屬性并重新繪制 """ import numpy as np import matplotlib.pyplot as mp import matplotlib.animation as man = 100 balls = np.zeros(n, dtype=[('position', float, 2), # 位置屬性('size', float, 1), # 大小屬性('growth', float, 1), # 生長速度('color', float, 4)]) # 顏色屬性 # 初始化每個泡泡 # uniform: 從0到1取隨機數,填充n行2列的數組 balls['position']=np.random.uniform(0,1,(n,2)) balls['size']=np.random.uniform(50,70,n) balls['growth']=np.random.uniform(10,20,n) balls['color']=np.random.uniform(0,1,(n,4)) # 繪制100個泡泡 mp.figure('Bubble', facecolor='lightgray') mp.title('Bubble', fontsize=18) mp.xticks([]) mp.yticks([]) sc = mp.scatter(balls['position'][:,0], balls['position'][:,1],balls['size'], color=balls['color'])# 啟動動畫 def update(number):balls['size'] += balls['growth']# 讓某個泡泡破裂,從頭開始執行boom_i = number % nballs[boom_i]['size'] = 60balls[boom_i]['position']= \np.random.uniform(0, 1, (1, 2))# 重新設置屬性sc.set_sizes(balls['size'])sc.set_offsets(balls['position'])anim = ma.FuncAnimation(mp.gcf(), update, interval=30)mp.show()

    """ 模擬心電圖 """ import numpy as np import matplotlib.pyplot as mp import matplotlib.animation as mamp.figure('Signal', facecolor='lightgray') mp.title('Signal', fontsize=16) mp.xlim(0, 10) mp.ylim(-3, 3) mp.grid(linestyle=':') pl = mp.plot([],[], color='dodgerblue',label='Signal')[0] # 啟動動畫 def update(data):t, v = datax, y = pl.get_data() #x y: ndarray數組x = np.append(x, t)y = np.append(y, v)# 重新繪制圖像pl.set_data(x, y)# 移動坐標軸if x[-1]>5:mp.xlim(x[-1]-5, x[-1]+5)x = 0 def generator():global xy = np.sin(2 * np.pi * x) * \np.exp(np.sin(0.2 * np.pi * x))yield (x, y)x += 0.05anim = ma.FuncAnimation(mp.gcf(), update, generator, interval=30) mp.show()

    總結

    以上是生活随笔為你收集整理的matplotlib之简单动画制作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。