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

Python利用matplotlib實現(xiàn)制作動態(tài)條形圖

 更新時間:2022年10月08日 10:12:13   作者:Python數(shù)據(jù)挖掘  
說到用 Python 制作動態(tài)圖,首先想到的肯定是一些直接拿來就用的庫,雖然我沒做過,但是我相信一定有且不止一個,搜了一圈后發(fā)現(xiàn)有個bar chart race庫看起來不錯,感興趣的可以跟隨小編一起學習一下

大家好,本文將分享如何使用matplotlib制作動態(tài)條形圖,制作的圖很美,這個是我在之前發(fā)布的一篇中使用的圖片,

效果如下

制作思路

為了方便大家學習,我將不直接進行講解,而是以我是如何一步步制作的思路來介紹整個過程。

說到用 Python 制作動態(tài)圖,首先想到的肯定是一些直接拿來就用的庫,雖然我沒做過,但是我相信一定有且不止一個,搜了一圈后發(fā)現(xiàn)有個bar chart race庫看起來不錯

畢竟有現(xiàn)成的輪子,只需要填充數(shù)據(jù)即可,但是研究了一番,正如我之前所說,越好看的圖對數(shù)據(jù)的要求越高,這個動態(tài)圖的庫指定數(shù)據(jù)必須類似如下格式

即有時間和國家兩個維度,通過時間的變化來動態(tài)變化數(shù)據(jù),但是我的數(shù)據(jù)很簡單,就一列人名一列數(shù)據(jù)如下

如果再將數(shù)據(jù)強行修改成該庫所需要的格式,花費的功夫將更多!所以果斷放棄,回到我熟悉的matplotlib上,首先很自然的想法就是,根據(jù)每一行,寫一個循環(huán),每次循環(huán)就創(chuàng)建一個條形圖。

這個想法是完全可以的,也有很多人這么做了,但是有一個問題就是做出來的效果太難看了,并且每次循環(huán)都需要重新生成畫布繪圖需要一定時間,這也會讓最后的動態(tài)圖顯的不連貫。所以稍作嘗試后這個思路也被拋棄了。

animation

又經過一番探索后,終于找到一個合適的工具——animation模塊,可以完美的實現(xiàn)我的需求,只需要將你的繪圖函數(shù)寫好,將涉及到的參數(shù)空出來,通過FuncAnimation來更新數(shù)據(jù)即可。

當然我也是第一次接觸,雖了解思路但不清楚具體實現(xiàn)邏輯,所以先從官方拉一個demo來看看整個過程如何實現(xiàn)

fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = ax.plot([], [], 'r-', animated=False)

def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, blit=True)

HTML(ani.to_jshtml())

上面這段代碼取自官方文檔,并不難讀懂,首先創(chuàng)建figureaxes,之后將涉及到的數(shù)據(jù)xdata,ydata空出來,再用update函數(shù)來更新數(shù)據(jù)并繪圖,具體為將數(shù)據(jù)賦給frames,通過FuncAnimation實例傳到update中實現(xiàn)迭代繪圖,最后可以使用ipython的內置工具來將動態(tài)圖展示在notebook中,效果如下

到這里基本上就搞明白整個過程了,下面我們只需要照貓畫虎,寫一個繪圖函數(shù)并設計如何更新數(shù)據(jù)即可,具體如下

解釋一下這一大段代碼,拋開設置標題、坐標軸等修飾的部分,實際上也只做了一件事通過flag參數(shù)來繪制每一行數(shù)據(jù)

為什么需分為兩段,因為我們圖上需要七根柱子,而剛開始的時候只有不到七條數(shù)據(jù),所以需要先創(chuàng)建七個空數(shù)據(jù),在繪制前七個柱狀圖時,依次添加,而后面只需要從7開始,刪除最早的一個數(shù)據(jù),并向后追加一個數(shù)據(jù)即可,額外需要考慮的是我們需要為每一個數(shù)據(jù)確定一個顏色,所以還有一列顏色列也需要更新,最終我們的數(shù)據(jù)如下

在搞定shuang這個繪圖函數(shù)后,只需要迭代更新數(shù)據(jù)并展示即可,相關代碼如下

其中ani.save()可以將動圖存儲為gif,HTML(ani.to_html5_video())可以將動圖保存為mp4,而HTML(ani.to_jshtml())則是在notebook中直接查看最終效果(注意第一次運行這里會報錯,根據(jù)相關提示安裝依賴即可),大家可以自己嘗試

至于代碼中如何添加標題、修改坐標軸、修改注釋等操作本文就不在細講了,最后是制作完成的效果,我個人感覺還不錯,也可以導出為高分辨率視頻添加bgm制作視頻

以上就是Python利用matplotlib實現(xiàn)制作動態(tài)條形圖的詳細內容,更多關于Python matplotlib動態(tài)條形圖的資料請關注腳本之家其它相關文章!

相關文章

  • Python迭代器和生成器定義與用法示例

    Python迭代器和生成器定義與用法示例

    這篇文章主要介紹了Python迭代器和生成器定義與用法,結合實例形式詳細分析了Python迭代器和生成器的概念、原理、定義、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-02-02
  • 使用Python處理Excel表格的簡單方法

    使用Python處理Excel表格的簡單方法

    這篇文章主要介紹了使用Python處理Excel表格的簡單方法,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • Python CVXOPT模塊安裝及使用解析

    Python CVXOPT模塊安裝及使用解析

    這篇文章主要介紹了Python CVXOPT模塊安裝及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python實現(xiàn)的堆排序算法原理與用法實例分析

    Python實現(xiàn)的堆排序算法原理與用法實例分析

    這篇文章主要介紹了Python實現(xiàn)的堆排序算法,簡單描述了堆排序的原理,并結合實例形式分析了Python實現(xiàn)堆排序的相關操作技巧,代碼中備有較為詳細的注釋便于理解,需要的朋友可以參考下
    2017-11-11
  • Python數(shù)據(jù)擬合與廣義線性回歸算法學習

    Python數(shù)據(jù)擬合與廣義線性回歸算法學習

    這篇文章主要為大家詳細介紹了Python數(shù)據(jù)擬合與廣義線性回歸算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • pydantic進階用法示例詳解

    pydantic進階用法示例詳解

    這篇文章主要為大家介紹了pydantic進階用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Python中三個不可思議的返回功能分享

    Python中三個不可思議的返回功能分享

    這篇文章主要給大家介紹了Python中三個不可思議的返回功能,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • python通過smpt發(fā)送郵件的方法

    python通過smpt發(fā)送郵件的方法

    這篇文章主要介紹了python通過smpt發(fā)送郵件的方法,涉及Python實現(xiàn)發(fā)送郵件的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • 解析Python中的eval()、exec()及其相關函數(shù)

    解析Python中的eval()、exec()及其相關函數(shù)

    本篇文章主要介紹了解析Python中的eval()、exec()及其相關函數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 淺析Python3中的對象垃圾收集機制

    淺析Python3中的對象垃圾收集機制

    在Python中,它在每個對象中保持了一個計數(shù)器,用于記錄指向該對象的的引用的個數(shù)。這篇文章主要介紹了Python3中的對象垃圾收集機制,需要的朋友可以參考下
    2019-06-06

最新評論

望江县| 苗栗县| 仁化县| 中山市| 会泽县| 荥经县| 临泉县| 塔城市| 当雄县| 上栗县| 临漳县| 清新县| 朝阳市| 仁怀市| 达拉特旗| 高雄县| 隆昌县| 遂昌县| 大足县| 曲松县| 闸北区| 饶阳县| 新疆| 长白| 秭归县| 逊克县| 襄汾县| 松江区| 山东省| 库伦旗| 积石山| 永宁县| 清涧县| 禹城市| 六安市| 汽车| 贵定县| 黄石市| 南阳市| 会昌县| 巴楚县|