最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)動態(tài)繪圖的示例詳解

 更新時間:2023年05月07日 09:13:15   作者:微小冷  
matplotlib中的animation提供了動態(tài)繪圖功能,這篇文章主要為大家詳細介紹了Python如何利用matplotlib實現(xiàn)動態(tài)繪圖,感興趣的可以了解一下

示例

matplotlib中的animation提供了動態(tài)繪圖功能,下面列舉一個最簡單的動態(tài)繪制三角函數(shù)的例子,來初步演示一下。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots(figsize=(5,3))
line, = ax.plot([], [], lw=1)
ax.grid()

def init():
    ax.set_ylim(-1, 1)
    ax.set_xlim(0, 10)
    line.set_data([],[])
    plt.tight_layout()
    return line,

def animate(N):
    x = np.arange(N)/10
    y = np.sin(x)
    line.set_data(x, y)
    return line,

ani = animation.FuncAnimation(fig, animate, range(100), init_func=init, interval=40)
ani.save("ani_test_0.gif")
plt.show()

效果如下

其中,fig, ax為繪圖窗口和坐標軸,這是在任何繪圖操作中都涉及到的元素,但在本例中的動態(tài)繪圖操作中,ax是以一種"全局變量"的形式存在的,將在后米娜的initanimate函數(shù)中被直接調(diào)用。

line即為繪制在ax之上的曲線,由于ax.plot默認返回一個曲線列表,通過line,=這樣的方法,可以提取出曲線列表中的第0條曲線,其結(jié)果等價于

line = ax.plot([], [], lw=1)[0]

接下來init函數(shù)用于繪圖曲線的初始化,animate用于調(diào)整繪圖函數(shù)的動態(tài)變化,其輸入N暫時可以簡單地理解為第N張圖像的曲線。

接下來,就是動態(tài)繪圖的核心對象FuncAnimation。

FuncAnimation

FuncAnimation是一個類,其構(gòu)造函數(shù)為

FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)

前面的4個參數(shù)在示例程序中已經(jīng)用到,fig為繪圖窗口;func為圖像更新函數(shù);frames為繪圖幀號;init_func為圖像的初始化函數(shù)。

其繪圖邏輯寫成偽代碼類似于

for n in frames:
    if n>0:
        draw(func(n))
    else:
        draw(init(n))    

如果frames是一個整數(shù),則在調(diào)用時會自動轉(zhuǎn)為range(frames)

而用于繪圖的主要對象,就是坐標軸ax,故而在示例中的animate以及init函數(shù)的返回對象是line,,當然也可以寫成return [line]。

FuncAnimation中的其他參數(shù)含義如下:

  • fargs 為繪圖函數(shù)func的其他輸入?yún)?shù)
  • save_count 緩存幀數(shù)
  • interval 幀延時,默認200毫秒,幀率25fps對應(yīng)40毫秒。
  • repeat_delay 重復(fù)延時,單位是微秒
  • repeat 為False時,動畫將只演示一遍。

三維情況

三維情況的動圖繪制函數(shù),機理與二維是相同的,下面引用官方畫廊中的示例,來演示一下三維動圖的繪制流程,首先生成一組隨機行走的曲線

np.random.seed(19680801)        # 隨機數(shù)種子,便于復(fù)現(xiàn)

def random_walk(N, L=0.05):
    st = np.random.random(3)
    steps = np.random.uniform(-L, L, size=(N, 3))
    walk = st + np.cumsum(steps, axis=0)
    return walk

walks = [random_walk(30) for index in range(40)]

random_walk可生成一條隨機行走的三維曲線,walks通過調(diào)用這個函數(shù),共生成了40條曲線,下面就是對這40條曲線的調(diào)用

def animate(num, walks, lines):
    for line, walk in zip(lines, walks):
        line.set_data(walk[:num, :2].T)
        line.set_3d_properties(walk[:num, 2])
    return lines

fig = plt.figure(figsize=(5,4))
ax = fig.add_subplot(projection="3d")

lines = [ax.plot([], [], [], lw=1)[0] for _ in walks]

ax.set(xlim3d=(0, 1), xlabel='X')
ax.set(ylim3d=(0, 1), ylabel='Y')
ax.set(zlim3d=(0, 1), zlabel='Z')

ani = animation.FuncAnimation(
    fig, animate, 30, fargs=(walks, lines), interval=100)

plt.show()

效果如下

到此這篇關(guān)于Python實現(xiàn)動態(tài)繪圖的示例詳解的文章就介紹到這了,更多相關(guān)Python動態(tài)繪圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytorch實現(xiàn)WGAN用于動漫頭像生成

    Pytorch實現(xiàn)WGAN用于動漫頭像生成

    這篇文章主要介紹了Pytorch實現(xiàn)WGAN用于動漫頭像生成,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 利用python將pdf輸出為txt的實例講解

    利用python將pdf輸出為txt的實例講解

    下面小編就為大家分享一篇利用python將pdf輸出為txt的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python實現(xiàn)系統(tǒng)狀態(tài)監(jiān)測和故障轉(zhuǎn)移實例方法

    python實現(xiàn)系統(tǒng)狀態(tài)監(jiān)測和故障轉(zhuǎn)移實例方法

    這篇文章主要介紹了用python實現(xiàn)系統(tǒng)狀態(tài)監(jiān)測和故障轉(zhuǎn)移的代碼方法
    2013-11-11
  • Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫

    Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python time庫基本使用方法分析

    Python time庫基本使用方法分析

    這篇文章主要介紹了Python time庫基本使用方法,結(jié)合實例形式分析了Python time模塊基本功能、控制符、使用方法與操作注意事項,需要的朋友可以參考下
    2019-12-12
  • python3如何獲取子線程中函數(shù)返回值

    python3如何獲取子線程中函數(shù)返回值

    這篇文章主要介紹了python3如何獲取子線程中函數(shù)返回值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python和flask中返回JSON數(shù)據(jù)的方法

    python和flask中返回JSON數(shù)據(jù)的方法

    下面小編就為大家整理了一篇python和flask中返回JSON數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • python 打印出所有的對象/模塊的屬性(實例代碼)

    python 打印出所有的對象/模塊的屬性(實例代碼)

    下面小編就為大家?guī)硪黄猵ython 打印出所有的對象/模塊的屬性(實例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 如何用PyMongo在Python中操作MongoDB的超完整指南

    如何用PyMongo在Python中操作MongoDB的超完整指南

    本文詳細介紹了如何使用Python的PyMongo庫操作MongoDB,涵蓋了數(shù)據(jù)庫連接、文檔創(chuàng)建、數(shù)據(jù)操作和高級功能的使用,通過這些知識點,開發(fā)者可以高效地管理和操作MongoDB數(shù)據(jù)庫,需要的朋友可以參考下
    2024-11-11

最新評論

百色市| 军事| 房产| 天峨县| 凤冈县| 沿河| 城固县| 洛川县| 思茅市| 岐山县| 云安县| 招远市| 乡宁县| 浪卡子县| 平顺县| 疏附县| 湘潭县| 阿鲁科尔沁旗| 迭部县| 文山县| 兴城市| 西安市| 成武县| 承德市| 古丈县| 阳曲县| 谷城县| 拜泉县| 五指山市| 长汀县| 大理市| 寿宁县| 三穗县| 松溪县| 忻城县| 万山特区| 宜兴市| 陆丰市| 定西市| 福鼎市| 云浮市|