欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python如何制作好玩的GIF動圖詳解

 更新時間:2018年07月11日 10:59:20   作者:集智小編  
這篇文章主要給大家介紹了關(guān)于利用Python如何制作好玩的GIF動圖的相關(guān)資料,實現(xiàn)的方法主要利用ImageMagick,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧

前言

之前我們分享過用Python進行可視化的9種常見方式。其實我們還能讓可視化圖形逼格更高一些,今天就分享一下如何讓可視化秀起來:用Python和matplotlib制作GIF圖表。

假如電腦上沒有安裝ImageMagick,先去這里按照自己的電腦系統(tǒng)下載對應版本,大家也可以通過腳本之家下載:http://www.dbjr.com.cn/softs/140766.html,如果我們想用matplotlib的save方法渲染GIF動圖,就需要安裝ImageMagick。

下圖是我們制作的一個動圖示例:

有兩點需要注意: 圖表中的散點不會動,會動的是直線。 X軸標題每一幀都在變化。

下面是我們制作上面GIF圖的代碼:

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

fig, ax = plt.subplots()
fig.set_tight_layout(True)

# 詢問圖形在屏幕上的大小和DPI(每英寸點數(shù))
# 注意當把圖形保存為文件時,需要為此單獨再提供一個DPI
print('fig size: {0} DPI, size in inches {1}'.format(
 fig.get_dpi(), fig.get_size_inches()))

# 繪制一個保持不變(不會被重新繪制)的散點圖以及初始直線
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軸標簽)
 # 以元組形式返回這一幀需要重新繪制的物體
 line.set_ydata(x - 5 + i)
 ax.set_xlabel(label)
 return line, ax

if __name__ == '__main__':
 # 會為每一幀調(diào)用Update函數(shù)
 # 這里FunAnimation設置一個10幀動畫,每幀間隔200ms
 anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
 if len(sys.argv) > 1 and sys.argv[1] == 'save':
  anim.save('line.gif', dpi=80, writer='imagemagick')
 else:
  # Plt.show()會一直循環(huán)動畫
  plt.show()

如果你想換個再酷炫點的主題,可以用seaborn庫,只需添加:

import seaborn

那么就會得到下面這張GIF圖:

稍微提醒一下:雖然我們這里的GIF圖只有10幀,圖形內(nèi)容也很簡單,但每一幀仍有160k左右。因為GIF動圖不使用跨幀壓縮,所以這就讓幀比較長的GIF圖變得很大。將幀數(shù)盡量減少,并且讓每一幀的圖像再小一點(通過在matplotlib中調(diào)整圖形大小或DPI)能或多或少有助于緩解這個問題。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考資料:drawing-animated-gifs-with-matplotlib/

相關(guān)文章

  • python時間日期操作方法實例小結(jié)

    python時間日期操作方法實例小結(jié)

    這篇文章主要介紹了python時間日期操作方法,結(jié)合實例形式總結(jié)分析了Python針對日期時間的轉(zhuǎn)換、計算相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • PyQt5高級界面控件之QTableWidget的具體使用方法

    PyQt5高級界面控件之QTableWidget的具體使用方法

    這篇文章主要介紹了PyQt5高級界面控件之QTableWidget的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 淺析Python 中整型對象存儲的位置

    淺析Python 中整型對象存儲的位置

    下面小編就為大家?guī)硪黄獪\析Python 中整型對象存儲的位置。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • 對于Python裝飾器使用的一些建議

    對于Python裝飾器使用的一些建議

    這篇文章主要介紹了對于Python裝飾器使用的一些建議,裝飾器是Python學習進階中的重要知識,需要的朋友可以參考下
    2015-06-06
  • 用Python可視化新冠疫情數(shù)據(jù)

    用Python可視化新冠疫情數(shù)據(jù)

    大家好,本篇文章主要講的是用Python可視化新冠疫情數(shù)據(jù),感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 深人了解Python上下文管理器

    深人了解Python上下文管理器

    這篇文章主要為大家介紹了Python上下文管理器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • python traceback捕獲并打印異常的方法

    python traceback捕獲并打印異常的方法

    這篇文章主要介紹了python traceback捕獲并打印異常的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python實現(xiàn)的對本地host127.0.0.1主機進行掃描端口功能示例

    Python實現(xiàn)的對本地host127.0.0.1主機進行掃描端口功能示例

    這篇文章主要介紹了Python實現(xiàn)的對本地host127.0.0.1主機進行掃描端口功能,可實現(xiàn)掃描本機開放端口的功能,涉及Python socket模塊與Thread多線程模塊相關(guān)使用技巧,需要的朋友可以參考下
    2019-02-02
  • 使用Python的Turtle庫繪制森林的實例

    使用Python的Turtle庫繪制森林的實例

    今天小編就為大家分享一篇使用Python的Turtle庫繪制森林的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

    Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解

    這篇文章主要給大家介紹了關(guān)于Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的相關(guān)資料, 程序由3種基本結(jié)構(gòu)組成,順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下
    2023-07-07

最新評論