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

Python使用Matplotlib實(shí)現(xiàn)雨點(diǎn)圖動畫效果的方法

 更新時間:2017年12月23日 12:18:11   作者:落葉_小唱  
這篇文章主要介紹了Python使用Matplotlib實(shí)現(xiàn)雨點(diǎn)圖動畫效果的方法,結(jié)合實(shí)例形式分析了win10安裝ffmpeg及animation函數(shù)的使用相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python使用Matplotlib實(shí)現(xiàn)雨點(diǎn)圖動畫效果的方法。分享給大家供大家參考,具體如下:

關(guān)鍵點(diǎn)

win10安裝ffmpeg
animation函數(shù)使用
update函數(shù)

win10安裝ffmpeg

因?yàn)樽詈笠獙赢媹D保存為.mp4格式,要用到ffmpeg,去官網(wǎng)下載,我az下載的是windows64bit static版本的,下載后解壓到軟件安裝常用路徑,并將ffmpeg路徑添加到環(huán)境變量(這個方法在最后沒用,但還是添加一下)

animationa函數(shù)

準(zhǔn)確來說是animation.FuncAnimation函數(shù)

常用參數(shù):

animation.FuncAnimation(fig,func,frames,init_func,interval)
fig:matplotlib.figure.Figure
func:每一幀都被調(diào)用,函數(shù)的第一個參數(shù)就是下一個參數(shù)frames里的value
frames:iterable,可以是整數(shù),整數(shù)的話等同于傳遞range(frames)

init_func:初始化函數(shù),就是fig的最初設(shè)置
interval:Delay between frames in milliseconds. Defaults to 200.

update函數(shù)

這個函數(shù)涉及到每一幀變化所繪制圖形里參數(shù)的變化,比如例程中的雨點(diǎn)大小,顏色,位置等(散點(diǎn)圖scatter繪制),具體看代碼

程序?qū)崿F(xiàn)

最初找到了例程的基于BSD協(xié)議的,經(jīng)過一些自己的修改,所以我也在代碼中貼上該協(xié)議

# -----------------------------------------------------------------------------
# Copyright (c) 2015, Nicolas P. Rougier. All Rights Reserved.
# Distributed under the (new) BSD License. See LICENSE.txt for more info.
# -----------------------------------------------------------------------------
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from matplotlib import animation
import os
#確定ffmpeg.exe的位置,試過加在環(huán)境變量里但依然提示找不到MovieWriter,最后這個方法解決了,在Python2.7版本路徑名前面要聲明編碼是unicode的,而在Python3中有無均可,這是2.X和3.x版本的一個編碼方面的區(qū)別
plt.rcParams['animation.ffmpeg_path'] = u"D:\\Applications\\ffmpeg-20170503-a75ef15-win64-static\\bin\\ffmpeg.exe"
#這里改變當(dāng)前工作路徑,方便下面保存文件的時候自動保存到該路徑下面
os.chdir("d:\\Files\\python\\matplotlib") 
# No toolbar
matplotlib.rcParams['toolbar'] = 'None'
# New figure with white background
fig = plt.figure(figsize=(6,6), facecolor='white')
# New axis over the whole figureand a 1:1 aspect ratio
# ax = fig.add_axes([0,0,1,1], frameon=False, aspect=1)
ax = fig.add_axes([0.005,0.005,0.990,0.990], frameon=True, aspect=1)
# Number of ring
n = 50
size_min = 50
size_max = 50*50
# Ring position ,圓環(huán)位置,范圍在[0,1]之間
P = np.random.uniform(0,1,(n,2))
# Ring colors環(huán)的顏色
C = np.ones((n,4)) * (0,1,0,1)
#C = np.ones((n,3)) * (1,0,1)
# Alpha color channel goes from 0 (transparent) to 1 (opaque)
# 透明度,數(shù)值在[0,1]之間
C[:,2] = np.linspace(0,1,n)
# Ring sizes環(huán)的大小,范圍在[50,2500]
S = np.linspace(size_min, size_max, n)
# Scatter plot
# 散點(diǎn)圖繪制
scat = ax.scatter(P[:,0], P[:,1], s=S, lw = 0.5,
         edgecolors = C, facecolors='None')
# Ensure limits are [0,1] and remove ticks
#保證x,y的范圍在[0,1]之間,移除坐標(biāo)軸標(biāo)記
ax.set_xlim(0,1), ax.set_xticks([])
ax.set_ylim(0,1), ax.set_yticks([])
def update(frame):
  global P, C, S
  # Every ring is made more transparent每個環(huán)變得更透明
  C[:,3] = np.maximum(0, C[:,3] - 1.0/n)
  # Each ring is made larger每個環(huán)都比原來的大
  S += (size_max - size_min) / n
  # Reset ring specific ring (relative to frame number)
  i = frame % 50  
  P[i] = np.random.uniform(0,1,2) # P[i] = P[i,:],同時改變了x,y兩個位置的值
  S[i] = size_min #從最小的形狀開始
  C[i,3] = 1   #設(shè)置透明度為1 
  # Update scatter object
  # 更新scatter繪圖對象的屬性,例如edgecolors,sizes,offsets等
  scat.set_edgecolors(C) #設(shè)置邊緣顏色
  scat.set_sizes(S)    #設(shè)置大小
  scat.set_offsets(P)   #設(shè)置偏置
  return scat,
animate = FuncAnimation(fig, update, frames = 300,interval=70)#interval是每隔70毫秒更新一次,可以查看help
FFwriter = animation.FFMpegWriter(fps=20)  #frame per second幀每秒
animate.save('rain.mp4', writer=FFwriter,dpi=360)#設(shè)置分辨率
plt.show()

生成的是mp4,把他轉(zhuǎn)化成了文件很小的gif顯示了一下效果,保存格式為gif的好像不行

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python使用xslt提取網(wǎng)頁數(shù)據(jù)的方法

    python使用xslt提取網(wǎng)頁數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了Python使用xslt提取網(wǎng)頁數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python實(shí)現(xiàn)列車管理系統(tǒng)

    python實(shí)現(xiàn)列車管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)列車管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • python數(shù)組中的?k-diff?數(shù)對例題解析

    python數(shù)組中的?k-diff?數(shù)對例題解析

    這篇文章主要介紹了python數(shù)組中的?k-diff?數(shù)對例題解析,文章根據(jù)題目內(nèi)容對其進(jìn)行分析以此展開主題內(nèi)容,感興趣的小伙伴可以參考一下下面文章詳情
    2022-06-06
  • python logging添加filter教程

    python logging添加filter教程

    今天小編就為大家分享一篇python logging添加filter教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python集合能干嗎

    python集合能干嗎

    在本篇內(nèi)容中小編給各位分享了關(guān)于python集合的作用以及相關(guān)實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • 使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法

    使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法

    這篇文章主要介紹了使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 從基礎(chǔ)到高階探索Python中的文件操作

    從基礎(chǔ)到高階探索Python中的文件操作

    文件操作在Python編程中是不可或缺的一部分,在本篇博客中,我們將全面、深入地探討Python中的文件操作,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2023-06-06
  • Python進(jìn)階語法之類的繼承

    Python進(jìn)階語法之類的繼承

    這篇文章主要為大家介紹了Python類的繼承,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 使用Python分析文本數(shù)據(jù)的詞頻并詞云圖可視化

    使用Python分析文本數(shù)據(jù)的詞頻并詞云圖可視化

    這篇文章主要給大家介紹了關(guān)于如何使用Python分析文本數(shù)據(jù)的詞頻并詞云圖可視化,文章中有詳細(xì)的圖文介紹和代碼示例,對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用MySQL、tkinter、 pyinstaller實(shí)現(xiàn)一個學(xué)生管理系統(tǒng),大家可以通過案例查缺補(bǔ)漏,提升水平
    2021-10-10

最新評論

乌鲁木齐县| 开封县| 东莞市| 东辽县| 渝北区| 宜宾市| 休宁县| 章丘市| 兴宁市| 临泽县| 普定县| 安岳县| 宜都市| 巢湖市| 佛教| 宁阳县| 济源市| 涟水县| 靖边县| 绥滨县| 安庆市| 东源县| 策勒县| 洛扎县| 清水河县| 岳池县| 民和| 九江市| 宁远县| 上高县| 孟州市| 丁青县| 改则县| 武夷山市| 平原县| 阜康市| 中江县| 秀山| 宁河县| 屏东市| 平乡县|