<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          利用Python制作動態(tài)排名圖

          共 1814字,需瀏覽 4分鐘

           ·

          2020-04-09 23:25

          fe25cc86050293ff63c7382e8f5a15e6.webp


               作者:劉早起早起


               來源:早起Python



          大家好,今天我們要講的是如何使用Pyecharts制作動態(tài)排名變化圖?

          9f6ea1861154aeb9ff298d7dee643c46.webp

          制作這樣的一個動態(tài)圖使用到的是Pyecharts中的TimeLine(時間線輪播圖),代碼實現(xiàn)起來其實稍有難度,但我希望能通過講解這樣一張動態(tài)圖的制作過程,來讓各位讀者可以使用Pyecharts將任何一種圖動起來,我們開始吧!




          ef746b5bd77e0568a6e2b6a327a224aa.webp

          首先我們需要思考一下這樣一種動態(tài)圖的生成邏輯,不就是把每天的數(shù)據(jù)制作成一張條形圖然后輪動嗎,OK那我們的數(shù)據(jù)要整理成啥樣呢?一個dataframe,每列是一個國家近20天的數(shù)據(jù),還有一個存儲20天時間的list?

          619c4940af78c0c413a88040269836af.webp

          搞定數(shù)據(jù)之后我們?nèi)yecharts官方示例網(wǎng)站找到一個類似的圖

          http://gallery.pyecharts.org/#/Timeline/timeline_bar_with_graphic


          2fd783c470371f82b896e2e61d849b48.webp

          官網(wǎng)示例代碼和效果都給你了,我們要做的就是將這段代碼改成我們需要的形式,現(xiàn)在我們將這段代碼復制到Notebook中,并修改將圖顯示在notebook中

          2f441d773875326a02814b57f84f0193.webp

          接下來我們觀察這段代碼與圖,首先要改的是,把他每次兩組變量改為一組變量,然后刪掉和修改一些不需要的文字?

          be0d1de1073f29e1fde6ecb00ae393bc.webp

          上圖左邊是修改前的代碼,右邊是代碼修改的部分,就不用多做解釋了,直接看圖,現(xiàn)在我們的圖就成了這樣?

          9051d6de23516f335ec5da5b3ca8d67b.webp

          是不是有點意思了,接下來也是稍微有一點難度的部分就是修改坐標軸和對應(yīng)的數(shù)據(jù),這時我們先觀察下這段代碼如何控制坐標軸和數(shù)據(jù)

          acfe156aa50b78932c711c9538cfb64c.webp


          可以看到x軸調(diào)用了Faker.choose(),y軸調(diào)用了Faker.values()打印我們單獨調(diào)用一下出來看看

          67c95254b4b7988ee88f9e38f380c02b.webp

          你看這倆方法每次返回一個list,并且這個list是變化的,并且要注意到他的X寫在循環(huán)外,所以x軸一直沒有變,但y軸的值寫在了循環(huán)里面,通過這樣的方式來讓每次生成的圖數(shù)據(jù)不一樣。


          ef746b5bd77e0568a6e2b6a327a224aa.webp

          所以我們接下來的目的就很明確了,因為我們的條形圖是有順序的所以我們需要寫兩個函數(shù),在生成每一張圖的時候,返回一組x軸數(shù)據(jù),一組y軸數(shù)據(jù),并且是按照順序排列的,所以可以這么寫?

          08a030cae8a104490d3a0b28f679d6ab.webp

          稍微解釋一下修改的地方,get_value()函數(shù)就是將df1傳進去,再把每一行的數(shù)據(jù)傳出來,k是用來識別調(diào)用次數(shù)的,這樣可以保證每次調(diào)用下一行的數(shù)據(jù)。接著在循環(huán)里面,將我們傳出來的確診數(shù)量和國家名使用Pandas進行排序并返回兩個list,此時這兩個list一一對應(yīng)并且確診數(shù)量是降序排列。

          此時我們的需求就實現(xiàn)了,用這個X,Y替換掉源代碼的X,Y即可

          c77ae177411484cb08669af0e2f6b4ee.webp

          其實到這里,就已經(jīng)結(jié)束了,點擊播放就可以實現(xiàn)輪動了,但接下來可以稍微修改部分代碼來調(diào)整細節(jié)

          b25b177f738784521a40539f29f33f2b.webp

          上面這兩處修改就是調(diào)整了每張圖的切換時間,自動播放和反轉(zhuǎn)XY軸,此時就大功告成,你的條形圖就成功的動起來?

          9f6ea1861154aeb9ff298d7dee643c46.webp


          ef746b5bd77e0568a6e2b6a327a224aa.webp

          以上就是從0到1制作動態(tài)條形圖的過程,感興趣的一定要敲一遍代碼。注意本文用柱狀圖示例,但是不管條形圖還是餅圖還是折線圖甚至地圖,體現(xiàn)到代碼不就是Bar還是Line嗎,想制作不同的動態(tài)圖不就是修改一行代碼的事嗎。我們再回顧一下剛剛的步驟:思考想要做的圖——>從官網(wǎng)找個demo——>觀察代碼——>修改部分代碼——>搞定!學會了嗎?


          注:本文使用的數(shù)據(jù)與代碼,點擊閱讀原文即可獲取(使用電腦端才可以正常下載),當然鼓勵自己嘗試一點一點寫~


          0e58c523dea3f9bf787a62ee6765286e.webp


          ◆ ◆ ◆  ◆ 




          長按二維碼關(guān)注我們



          數(shù)據(jù)森麟公眾號的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關(guān)于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關(guān)內(nèi)容,還沒有加入的小伙伴可以掃描下方管理員二維碼,進群前一定要關(guān)注公眾號奧,關(guān)注后讓管理員幫忙拉進群,期待大家的加入。


          管理員二維碼:



          猜你喜歡

           笑死人不償命的知乎沙雕問題排行榜

           用Python扒出B站那些“驚為天人”的阿婆主!

           全球股市跳水大戰(zhàn),誰最坑爹!

           上萬條數(shù)據(jù)撕開微博熱搜的真相!

           你相信逛B站也能學編程嗎

          瀏覽 80
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰午夜福利 | 香蕉视频乱伦 | 败火老妇露脸视频 | 日本亚洲欧洲免费 | 波多野42部无码喷潮更新时间 |