怎樣用Python製作好玩的GIF動圖

2021-02-14 程式設計師技術

點擊上方「程式設計師共讀」,選擇「置頂公眾號」

關鍵時刻,第一時間送達!

作者: 景略集智        

https://jizhi.im/blog/post/pytogif

程式設計師共讀整理髮布,轉載請聯繫作者獲得授權

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

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

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

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

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

import sysimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimationfig, ax = plt.subplots()fig.set_tight_layout(True)# 詢問圖形在屏幕上的大小和DPI(每英寸點數)# 注意當把圖形保存為文件時,需要為此單獨再提供一個DPIprint('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, axif __name__ == '__main__':    # 會為每一幀調用Update函數    # 這裡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()會一直循環動畫        plt.show()

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

import seaborn

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

稍微提醒一下:雖然我們這裡的GIF圖只有10幀,圖形內容也很簡單,但每一幀仍有160k左右。因為GIF動圖不使用跨幀壓縮,所以這就讓幀比較長的GIF圖變得很大。將幀數儘量減少,並且讓每一幀的圖像再小一點(通過在matplotlib中調整圖形大小或DPI)能或多或少有助於緩解這個問題。
參考資料:drawing-animated-gifs-with-matplotlib/

【點擊成為python開發大神】

相關焦點

  • 如何製作gif格式動態圖片?如何把短視頻做成gif動圖?
    gif動圖一般帶給大家都是比較愉悅好玩的感覺,而且動圖的類型也有很多種,比如閃圖,動畫,電視劇或者電影片段等等,都是非常常見的動圖類型。如果想要親自動手製作這種視頻類型的動圖該怎樣來進行操作呢?下面給大家分享一下gif動態圖片製作的方法,通過截取視頻轉gif動圖,一起來看一下具體的操作過程。點擊導航欄中的gif工具,選擇視頻轉gif功能。點擊選擇視頻,將想要截取片段的視頻上傳到網站。找到視頻截取的第一個畫面,選擇為開始時間,選擇截取的時長,最大支持15秒視頻截取,根據使用需求來選擇尺寸,點擊生成gif按鈕。
  • GIF圖怎麼做?gif動圖電腦製作的操作技巧
    在與好友聊天的時候,經常會使用各種類型的動圖表情包,除了使用系統提供的動圖表情之外,還可以收藏好友發的動圖添加到收藏中使用,那麼如果想要自制gif動圖表情包的話該怎樣來進行操作呢?下面教大家在線製作gif動態圖片的操作方法,感興趣的小夥伴接著往下看吧。
  • 怎樣把多張圖片合成GIF?如何製作gif動圖?
    GIF圖片比起靜態圖,它的展示效果會更好,視覺效果更具有衝擊性,所以在很多宣傳活動中經常會見到這種動圖。那麼怎樣才能簡單的製作出GIF,會不會很複雜?很多朋友表示根本不會製作,其實製作GIF很簡單的,只要藉助第三方軟體就能輕鬆搞定。至於怎麼實現呢?
  • 如何在線製作gif引導動圖?
    在編輯推廣文章內容的時候,經常會使用gif動圖的形式來做引導關注,與靜態圖片相比,gif動圖更能夠對用戶產生吸引力。那麼怎樣才能快速完成引導關注gif在線製作呢?下面教大家套用模板,自製引導關注gif動圖的操作方法,只需簡單的幾步操作就可以輕鬆製作出不同類型的引導動圖,一起來學習一下吧!點擊宣傳動圖功能,在分類中點擊gif引導關注,查看所屬分類下的模板,其他分類下的模板也可以製作,根據所需類型。點擊合適的模板,然後點擊立即製作,以下圖模板為例。
  • 怎麼製作動態圖片?手機如何製作清晰gif動圖?
    對於gif動圖大家是非常熟悉的一種圖片展現形式,比如平常在微信,QQ中使用的表情包就是gif動圖樣式的一種。一般獲取GIF動圖的渠道主要是來自網上或者對於好友使用的比較有趣的圖片進行收藏,然後在聊天的時候使用大部分的朋友都是不會自己動手製作gif動圖的,今天分享給大家手機手機如何製作gif動態圖的詳細步驟。打開手機自帶瀏覽器,搜索網站。
  • python圖像處理-gif動圖
    前言相信很多人都有看過動圖,玩過一些小遊戲或者看過定格動畫,可能你很好奇,它們都是怎麼做出來的,其中的原理主要還是利用人的人眼暫留效應,簡單點來說,就是人看過一張圖片後,你把圖片拿走後,眼睛裡還是會短暫的保留一段時間,在這個期間內你在看另外一張圖片
  • 電腦如何製作gif文字動圖?文字GIF動畫生成的方法
    gif動圖的類型有很多種,比如在公眾號中常見的一種類型就是文字類型的引導動圖。那麼大家知道使用電腦怎樣才能快速的完成文字gif在線製作嗎,文字gif動畫生成的方法有哪些呢?下面教大家gif在線製作的操作方法,幫助大家快速完成文字gif動態圖片製作,大家一起來看一下如何操作吧。
  • 動態圖片在線製作技巧,怎樣自製表情包gif動圖?
    現在表情包動態圖片越來越火,各種各樣的動圖層出不窮,那麼動態圖片製作在線的技巧是怎樣的呢,大家一起來看一下。點擊「添加視頻」功能,將準備好的視頻上傳到網站上面。選擇視頻畫面的長度,作為生成gif動圖之後的效果,點擊播放按鈕,開始播放視頻,點擊開始取圖作為gif的第一個畫面, 點擊停止取圖,然後點擊取圖完成進入參數設置頁面。
  • 一款非常專業的GIF動圖製作安卓應用軟體--Gif助手
    GIF助手(GIFMaster)是一款非常專業的GIF動圖製作應用軟體,GIF助手app為用戶提供了動圖製作、表情包製作、圖片合成
  • GIF動圖製作工具大全,讓小白秒變PS大神!
    想要找到自己心儀的動圖該怎麼破最簡單粗暴的方法就是去百度、微博小豬動圖GIF搜索網站等途徑尋找最優雅的方法是你可以自己製作啊!畢竟,自己動手,豐衣足食下面豬小妹將會介紹10種GIF動圖製作的工具本次將不會詳細介紹製作的教程畢竟咋們來日方長畢竟教程在接下來的日子裡總會有的
  • 如何將視頻動畫在線製作為gif動圖?
    不管是電視劇,電影,還是動畫等視頻類型中,有很多的畫面非常的有趣,可以將這些能夠製作gif動圖,作為表情包,在與好友聊天互動的時候進行使用,更好的表達自己的情緒,營造良好的氛圍。那麼,大家知道怎樣才能夠將視頻轉化gif動圖嗎?
  • 如何用python製作動態二維碼,來哄女朋友開心?
    教你如何用python製作動態二維碼,來哄女朋友開心?5、生成帶圖片的動態二維碼在網上沒有收到同款圖片,只找到了一個類似的動圖,並命名為:發射心心.gif save_name='xinxin.gif', #輸出文件名,格式可以是 .jpg, .png ,.bmp ,.gif ; myqr.run(words='https://www.cnblogs.com/Estate-47/')
  • 輕鬆搞定手機在線製作gif動態表情圖的操作技巧
    gif動態表情是聊天溝通活躍氣氛常用的方式,有趣好玩的gif動態表情圖能夠更好的帶動聊天的氛圍,並且能夠減少尷尬的氣氛,一半獲取gif動態表情的方式都是從網上找,或者將好友發布的表情進行收藏使用,那麼怎樣才能自己製作專屬自己的gif動態圖呢?
  • 用Python做一個縮放自如的聖誕老人
    今天的主題是為大家展示如何用python做一個不斷變大的聖誕老人,就像西遊記中能夠隨意變幻大小的神仙妖怪那樣,算是送給大家的小禮物,先上個圖吧!縮放比例間隔越小、準備的圖片素材越多,生成的動圖也就越平滑。當然,動圖的效果如何還要綜合考慮多個因素,這裡小編還是採用39幅圖片組合動圖。其中最小的圖形高度是原圖的1/30,最大的圖形高度是原圖的1.3倍。與底圖疊加後的圖片就是下面這個樣子。
  • gif動圖太大怎麼縮小?gif動圖如何在線裁剪?
    那麼,在使用gif動圖的時候,怎樣能夠快速的裁剪gif圖片大小呢?下面教大家使用裁剪工具,快速完成在線裁剪gif尺寸,一起來看一下具體的操作步驟。點擊導航欄中的gif工具按鈕,選擇gif裁剪功能。裁剪完成之後,在下方生成裁剪後的gif動圖,點擊下載按鈕,保存到電腦。
  • 自製gif表情包,如何在gif動圖中繪製內容?
    最近,很多人在學習製作GIF動態圖片的時候,想要直接在gif原有的基礎上繪製點內容,那麼應該如何繪製呢?接下來,小編就將方法整理如下,希望能幫到大家哦!製作gif最簡單的方法,肯定是將生活中拍攝的好玩有趣的圖片直接製作成GIF動圖,比如配個文字,在上面塗鴉等。
  • 怎麼製作動圖gif?給表情包增添多一點樂趣
    平時看GIF動圖的時候,有沒有想過在此基礎上添加一些效果,用來做微信表情包?GIF動圖相相對比較靜態圖片更有趣生動,現在大多數人在聊天的試試都會給另一方發一些gif動態的表情包,只不過大多數人都是在網絡上下載他人製做好的動圖,假如自個還能夠親手製作,除了有滿足感之外,還能更強的表述自個的想法。今天就來學習學習,gif的製作方法,本文就教你如何在gif動圖上添加文字內容,方法很簡單,快來看看吧!
  • 怎樣將png和jpg格式圖片合成gif動圖?
    jpg和png格式的圖片在日常生活中是使用廣泛的兩種圖片,那麼如果想將這兩種不同格式的靜態圖片合成一張gif動態圖片的話,該如何來進行操作呢?下面教大家使用gif合成工具,輕鬆在線合成png和jpg圖片動圖製作的方法,有需求的小夥伴一定要認真閱讀下面講述的操作步驟,一起來看一下。
  • 如何製作gif動圖?國慶檔這三部電影備受期待,碼住
    如何製作gif動圖?
  • 視頻製作Gif免費怎麼做?視頻製作動圖免費工具推薦!
    視頻製作Gif方法免費在線視頻製作Gif這是一個非常好用的在線視頻制Gif動圖的工具,你不用下載任何軟體,只需打開網站,然後上傳你的視頻就可以馬上製作了!跟著以下步驟試試:1.百度搜索「在線視頻轉Gif」,打開第一個頁面。