python制作動(dòng)態(tài)畫(huà)面的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司專(zhuān)注于定南企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站建設(shè)。定南網(wǎng)站建設(shè)公司,為定南等地區(qū)提供建站服務(wù)。全流程按需定制制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

小編給大家分享一下python制作動(dòng)態(tài)畫(huà)面的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

python動(dòng)圖的核心函數(shù)是matplotlib.animation.FuncAnimation,基本用法是:

anim = animation.funcanimation(fig, animate, init_func=init, frames=100, interval=20, blit=true)
# fig: 是我們創(chuàng)建的畫(huà)布
# animat: 是重點(diǎn),是我們每個(gè)時(shí)刻要更新圖形對(duì)象的函數(shù),返回值和init_func相同
# init_func: 初始化函數(shù),其返回值就是每次都要更新的對(duì)象,
#    告訴FuncAnimation在不同時(shí)刻要更新哪些圖形對(duì)象
# frames: 相當(dāng)于時(shí)刻t,要模擬多少幀圖畫(huà),不同時(shí)刻的t相當(dāng)于animat的參數(shù)
# interval: 刷新頻率,毫秒
# blit: blit是一個(gè)非常重要的關(guān)鍵字,它告訴動(dòng)畫(huà)只重繪修改的部分,結(jié)合上面保存的時(shí)間,
#    blit=true會(huì)使動(dòng)畫(huà)顯示得會(huì)非常非常快

示例:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation  # 動(dòng)圖的核心函數(shù)
import seaborn as sns  # 美化圖形的一個(gè)繪圖包

sns.set_style("whitegrid")  # 設(shè)置圖形主圖

# 創(chuàng)建畫(huà)布
fig, ax = plt.subplots()
fig.set_tight_layout(True)

# 畫(huà)出一個(gè)維持不變(不會(huì)被重畫(huà))的散點(diǎn)圖和一開(kāi)始的那條直線。
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line, = ax.plot(x, x - 5, 'r-', linewidth=2)

def update(i):
    label = 'timestep {0}'.format(i)
    print(label)
    # 更新直線和x軸(用一個(gè)新的x軸的標(biāo)簽)。
    # 用元組(Tuple)的形式返回在這一幀要被重新繪圖的物體
    line.set_ydata(x - 5 + i)  # 這里是重點(diǎn),更新y軸的數(shù)據(jù)
    ax.set_xlabel(label)    # 這里是重點(diǎn),更新x軸的標(biāo)簽
    return line, ax

# FuncAnimation 會(huì)在每一幀都調(diào)用“update” 函數(shù)。
# 在這里設(shè)置一個(gè)10幀的動(dòng)畫(huà),每幀之間間隔200毫秒
anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)

生成GIF動(dòng)圖:

安裝imageio庫(kù);接著如下代碼中的注釋?zhuān)紫茸x取靜態(tài)圖到列表,作為GIF的每一幀;接著設(shè)置輸入(靜態(tài)圖)、輸出(動(dòng)態(tài)圖)和一些必要參數(shù),我們這里設(shè)置每一幀間隔時(shí)間為1.5秒,默認(rèn)是1秒,之后調(diào)用miageio.mimsave函數(shù)去保存結(jié)果。

'''
Author: Solarzhou
Email: tzhou@foxmail.com
公眾號(hào):Solarzhou
'''
import imageio
def create_gif(image_list, gif_name, duration = 1.0):
    '''
    :param image_list: 這個(gè)列表用于存放生成動(dòng)圖的圖片
    :param gif_name: 字符串,所生成gif文件名,帶.gif后綴
    :param duration: 圖像間隔時(shí)間
    :return:
    '''
    frames = []
    for image_name in image_list:
        frames.append(imageio.imread(image_name))

    imageio.mimsave(gif_name, frames, 'GIF', duration=duration)
    return

def main():
    #這里放上自己所需要合成的圖片
    image_list = ['1.jpg', '2.jpg', '3.jpg']
    gif_name = 'new.gif'
    duration = 1.5
    create_gif(image_list, gif_name, duration)

if __name__ == '__main__':
    main()

看完了這篇文章,相信你對(duì)python制作動(dòng)態(tài)畫(huà)面的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

文章題目:python制作動(dòng)態(tài)畫(huà)面的方法-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article18/dhesgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、品牌網(wǎng)站制作、響應(yīng)式網(wǎng)站、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)