溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Python怎么制作好玩的GIF動圖

發(fā)布時間:2021-02-07 14:55:46 來源:億速云 閱讀:296 作者:小新 欄目:開發(fā)技術

小編給大家分享一下利用Python怎么制作好玩的GIF動圖,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

用Python和matplotlib制作GIF圖表。

假如電腦上沒有安裝ImageMagick,先去這里按照自己的電腦系統(tǒng)下載對應版本,如果我們想用matplotlib的save方法渲染GIF動圖,就需要安裝ImageMagick。

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

利用Python怎么制作好玩的GIF動圖

有兩點需要注意: 圖表中的散點不會動,會動的是直線。 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圖:

利用Python怎么制作好玩的GIF動圖

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

看完了這篇文章,相信你對“利用Python怎么制作好玩的GIF動圖”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI