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

Python實現(xiàn)動態(tài)條形圖繪制的示例代碼

 更新時間:2022年08月03日 09:24:21   作者:古明地覺  
這篇文章主要為大家詳細介紹了如何利用Python語言實現(xiàn)動態(tài)條形圖的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

兩年前在 B 站上看到了一個寶藏 up 主,名叫 "Jannchie見齊",專門做動態(tài)條形圖樣式的數(shù)據(jù)可視化。

做出的效果還是很不錯的,但工具使用的是 JS,不是 Python。于是嘗試搜索了一下,看看 Python 有沒有相關的庫,也能輕松做出動態(tài)條形圖的效果。幸運的是還真有相關的庫,叫 bar_chart_race,那么下面就來看看它的用法。

老規(guī)矩,使用之前先安裝,直接 pip install bar-chart-race 即可。

import?pandas?as?pd
import?bar_chart_race?as?bcr

#?如果出現(xiàn)SSL錯誤, 則全局取消證書驗證
"""
import?ssl
ssl._create_default_https_context?=?\
??ssl._create_unverified_context
"""??

#?獲取數(shù)據(jù)
df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?生成?GIF?圖像
bcr.bar_chart_race(df,?"covid19_horiz.gif")

我們看到代碼非常簡單,就是將數(shù)據(jù)轉成 pandas 的 DataFrame,然后調用 bar_chart_race 即可生成 GIF 圖像。

整體還是不錯的,然后重點來看一下數(shù)據(jù):

其中表頭就是 GIF 圖表中 Y 軸的部分,但要注意的是,我們的圖表是隨時間不斷變化的,所以在生成 DataFrame 的時候必須將 date 字段設置為索引。然后數(shù)據(jù)隨著時間不斷變化,條形圖之間會根據(jù)數(shù)據(jù)的大小進行排序。

當然了,以上只是默認生成的,bar_chart_race 里面還有很多的參數(shù),我們來看一下。

動態(tài)條形圖變動態(tài)柱狀圖

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
bcr.bar_chart_race(df,?"covid19_horiz.gif",?
???????????????????orientation='v')

我們看到為了避免文字發(fā)生重疊,自動傾斜了,所以還是比較人性化的。

指定排序方式

排序方式默認為降序,也可以指定為升序。

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?設置排序方式
bcr.bar_chart_race(df,?"covid19_horiz.gif",?
???????????????????sort='asc')

限制條目數(shù)

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?設置最多能顯示的條目數(shù),這里最多顯示?6?條
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????n_bars=6)

設置固定條目

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?選取如下?5?個國家的數(shù)據(jù)
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????fixed_order=['Iran',?'USA',?'Italy',?
????????????????????????????????'Spain',?'Belgium'])

固定數(shù)值軸,使其不發(fā)生動態(tài)變化

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?設置數(shù)值的最大值,固定數(shù)值軸
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????fixed_max=True)

設置圖像幀數(shù),默認 10 幀

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?圖像幀數(shù):數(shù)值越小,越不流暢;越大,越流暢
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????steps_per_period=3)

可以看到,動圖變得不流暢了。

設置幀率,單位時間默認為 500ms

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?設置幀率為?200ms,總共?20?幀
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????steps_per_period=20,?
???????????????????period_length=200)

設置每幀增加的標簽時間,默認為 False

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????interpolate_period=True)

 

圖形樣式設置

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?index_col=["date"])
"""
figsize:?設置畫布大小,默認?(6,?3.5)
dpi:?圖像分辨率,默認?144
label_bars:?顯示柱狀圖的數(shù)值信息,默認為 True;
????????????指定為 False 則不顯示;指定為字典,則自定義顯示屬性
period_label:?顯示時間標簽信息,默認為 True;
??????????????指定為 False 則不顯示;指定為字典,則自定義顯示屬性
period_fmt:?設置日期格式
title:?圖表標題
title_size:?標題字體大小
shared_fontdict:?全局字體屬性,例如?
?????????????????{'family':?'Helvetica',?'weight':?'bold',?
??????????????????'color':?'rebeccapurple'}
"""
bcr.bar_chart_race(df,?'covid19_horiz.gif',?figsize=(5,?3),?
???????????????????dpi=100,?label_bars=False,
???????????????????period_label={'x':?.99,?'y':?.1,
?????????????????????????????????'ha':?'right',?
?????????????????????????????????'color':?'red'},
???????????????????title='COVID-19?Deaths?by?Country')

條形圖屬性,可以設置透明度,邊框等

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
# bar_kwargs:條形圖屬性
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????bar_kwargs={'alpha':?.2,?
???????????????????????????????'ec':?'black',?
???????????????????????????????'lw':?3})

添加動態(tài)文本

import?pandas?as?pd
import?bar_chart_race?as?bcr
import?matplotlib.pyplot?as?plt

#?設置字體,否則無法顯示中文
plt.rcParams['font.sans-serif']?=?['SimHei']??#?Windows
#?plt.rcParams['font.sans-serif']?=?['Hiragino?Sans?GB']?#?Mac
plt.rcParams['axes.unicode_minus']?=?False

df?=?pd.read_csv('covid19_tutorial.csv',?index_col=["date"])

def?summary(values,?ranks):
????#?動態(tài)文本的內容
????"""
????values?為?df?的每一行(Series),例如
????????Belgium????????????1143.0
????????China??????????????3326.0
????????France?????????????6520.0
????????Germany????????????1275.0
????????Iran???????????????3294.0
????????Italy?????????????14681.0
????????Netherlands????????1490.0
????????Spain?????????????11198.0
????????USA????????????????7418.0
????????United?Kingdom?????3611.0
????????Name:?2020-04-03,?dtype:?float64

????ranks?則是針對?values?的值進行了排名,例如
????????Belgium????????????1.0
????????China??????????????5.0
????????France?????????????7.0
????????Germany????????????2.0
????????Iran???????????????4.0
????????Italy?????????????10.0
????????Netherlands????????3.0
????????Spain??????????????9.0
????????USA????????????????8.0
????????United?Kingdom?????6.0
????????Name:?2020-04-03,?dtype:?float64
????"""
????all_people?=?int(values.sum())
????ranks_country?=?ranks.sort_values().index
????s?=?(f'總死亡人數(shù):{all_people},'
?????????f'死亡人數(shù)最多的國家:{ranks_country[-1]},'
?????????f'死亡人數(shù)最少的國家:{ranks_country[0]}')
????#?設置文本位置、數(shù)值、大小、顏色等
????return?{'x':?.99,?'y':?.05,?'s':?s,
????????????'ha':?'right',?'size':?8}

#?添加文本
bcr.bar_chart_race(df,?'covid19_horiz.gif',
???????????????????period_summary_func=summary)

添加垂直條

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
#?設置垂直條數(shù)值,分位數(shù)
def?func(values,?ranks):
????return?values.quantile(.9)
#?添加垂直條
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????perpendicular_bar_func=func)

設置柱狀圖顏色

import?pandas?as?pd
import?bar_chart_race?as?bcr

df?=?pd.read_csv('covid19_tutorial.csv',?
?????????????????index_col=["date"])
"""
#?具體有哪些顏色,可以通過如下方式查看
from?bar_chart_race._colormaps?import?colormaps
print(list(colormaps.keys()))
"""
bcr.bar_chart_race(df,?'covid19_horiz.gif',?
???????????????????cmap="plotly3")

以上就是絕大部分配置,當然源碼中注釋寫的也比較詳細,可以點進去看一下。

到此這篇關于Python實現(xiàn)動態(tài)條形圖繪制的示例代碼的文章就介紹到這了,更多相關Python動態(tài)條形圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python Pandas數(shù)據(jù)結構簡單介紹

    Python Pandas數(shù)據(jù)結構簡單介紹

    這篇文章主要介紹了Python Pandas數(shù)據(jù)結構簡單介紹的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 使用python檢測主機存活端口及檢查存活主機

    使用python檢測主機存活端口及檢查存活主機

    這篇文章主要介紹了使用python檢測主機存活端口及檢查存活主機的相關資料,需要的朋友可以參考下
    2015-10-10
  • python熱力圖實現(xiàn)簡單方法

    python熱力圖實現(xiàn)簡單方法

    在本篇內容里小編給大家分享的是一篇關于python熱力圖實現(xiàn)簡單方法,對此有興趣的朋友們可以學習下。
    2021-01-01
  • python數(shù)據(jù)結構之線性表的順序存儲結構

    python數(shù)據(jù)結構之線性表的順序存儲結構

    這篇文章主要為大家詳細介紹了python數(shù)據(jù)結構之線性表的順序存儲結構,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Linux環(huán)境下安裝python3

    Linux環(huán)境下安裝python3

    這篇文章介紹了Linux環(huán)境下安裝python3的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Python趣味編程實現(xiàn)手繪風視頻示例

    Python趣味編程實現(xiàn)手繪風視頻示例

    本文與計算機視覺相關,使用Python將圖片由自然風轉化為手繪風,期間未對圖片進行任何預處理、后處理;代碼中只借助了兩個常見庫,核心計算由Numpy負責 ,Pillow 負責圖片讀寫
    2021-10-10
  • tensorflow實現(xiàn)對圖片的讀取的示例代碼

    tensorflow實現(xiàn)對圖片的讀取的示例代碼

    本篇文章主要介紹了tensorflow實現(xiàn)對圖片的讀取的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python堆排序的實現(xiàn)示例

    Python堆排序的實現(xiàn)示例

    堆排序是一種基于二叉堆數(shù)據(jù)結構的排序算法,本文主要介紹了Python堆排序的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Python 實現(xiàn)給圖片加文字或logo水印

    Python 實現(xiàn)給圖片加文字或logo水印

    本文主要為大家介紹了給圖片添加文字或者logo圖片水印的python工具,從而打造你的專屬圖片。代碼簡潔易懂,感興趣的小伙伴可以了解一下
    2021-11-11
  • Python?Base64編碼和解碼操作

    Python?Base64編碼和解碼操作

    Base64?就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,這篇文章主要介紹了Python?Base64編碼和解碼,需要的朋友可以參考下
    2022-12-12

最新評論

松江区| 尼玛县| 黑水县| 林西县| 邵东县| 临汾市| 长宁区| 顺义区| 商河县| 县级市| 乌什县| 石城县| 闽侯县| 登封市| 寻甸| 宿州市| 铜梁县| 乐清市| 山东省| 长春市| 平陆县| 贵溪市| 怀宁县| 建平县| 阜康市| 门头沟区| 巴林左旗| 盘锦市| 岳池县| 界首市| 右玉县| 宜兰市| 永城市| 苗栗市| 杭州市| 松滋市| 延安市| 新干县| 专栏| 会昌县| 泸州市|