日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】刷爆网络的动态条形图,3行Python代码就能搞定

發布時間:2025/3/8 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】刷爆网络的动态条形图,3行Python代码就能搞定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次出了一個在網站「Flourish」畫動態條形圖的文章【動態條形圖視頻教程】,需要登錄網址很多人可能覺得不方便,現在有大佬出了個Python包,只需幾行代碼就能搞定動態條形圖,非常強大,給大家分享下。

一、前期準備工作

1、官方參考文檔

GitHub :https://github.com/dexplo/bar_chart_race

說明文檔:https://www.dexplo.org/bar_chart_race/

2、軟件安裝(該安裝方法只能安裝0.1版本)

pip install bar_chart_race conda install -c conda-forge bar_chart_race

0.2版本需要到github安裝

壓縮包解壓到軟件安裝目錄的/site-packages目錄下,利用命令行安裝即可

3、安裝ffmpeg、ImageMagick?

ffmpeg包:不然無法輸出 mp4/m4v/mov/等格式的視頻,該包比較復雜,需要配置變量環境,具體操作可以看看這個博客:

https://baijiahao.baidu.com/s?id=1660327134602942057&wfr=spider&for=pc

ImageMagick包:如果你要創建GIF,需要安裝這個包ImageMagick,安裝方法與上述類似。

二、官方數據畫圖

上述準備都做好了,那就可以開始畫圖了,利用官方提供的數據,直接加載就可以,我的數據下載沒成功,所以自己上傳數據繪圖,等下回講怎么自己上傳數據。

#加載包import bar_chart_race as bcr#下載數據df?=?bcr.load_dataset('covid19_tutorial')#生成GIF圖像bcr.bar_chart_race(df,?'covid19_horiz.gif')#生成MP4bcr.bar_chart_race(df, 'covid19_horiz.MP4')

生成的GIF

生成的MP4

三、自己的數據畫圖

如果是自己的數據,要進行一定的處理,達到畫圖格式,不然會報錯。

#讀取數據 df = pd.read_csv('data.csv') #格式處理,需要把日期date轉換成索引,不能作為單獨一列 df?=?df.set_index(keys='date') 作者也提供了兩個處理數據的函數 bcr.prepare_wide_data? bcr.prepare_long_data

原始數據

處理后數據(date轉換成了索引)

下面是個我自己制作的一個視頻,金庸小說人氣排行榜,數據獲取,關注公眾號【AI入門學習】,回復「條形圖」即可獲取。

import?os import bar_chart_race as bcr import?pandas?as?pd data_path = 'C:/Users/wuzhengxiang/Desktop/百度指數' os.chdir(data_path)#設置當前工作空間 print?(os.getcwd())#獲得當前工作目錄 df = pd.read_csv('金庸小說人氣排行榜.csv') df?=?df.set_index(keys='date') # 生成mp4圖像 bcr.bar_chart_race(df, filename='金庸小說人氣排行榜.MP4', steps_per_period = 30, period_length = 1000,title='金庸小說人氣排行榜')

四、圖形美化

作者還提供了很多參數,對圖形進行調整和美化,輸出的圖形更漂亮

1、橫轉縱?Vertical bars

#orientation='v',.gif變成MP4即可輸出視頻 bcr.bar_chart_race(df, 'covid19_horiz.gif', orientation='v')

2、升序排序

#?排序方式,sort='asc'-升序bcr.bar_chart_race(df, 'covid19_horiz.gif', sort='asc')

3、類目數限制,此處設置為最多出現6條

#?設置最多能顯示的條目數 n_bars=6 bcr.bar_chart_race(df, 'covid19_horiz.gif', n_bars=6)

4、設置展示類目

# 選取如下5個國家的數據 fixed_orderbcr.bar_chart_race(df, 'covid19_horiz.gif', fixed_order=['Iran', 'USA', 'Italy', 'Spain', 'Belgium'])

5、固定坐標軸

#設置數值的最大值,固定數值軸fixed_max bcr.bar_chart_race(df, 'covid19_horiz.gif', fixed_max=True)

6、改變圖像幀數

#圖像幀數,數值越小,越不流暢。越大,越流暢。默認為10比較流暢,改為3就有些卡頓了 bcr.bar_chart_race(df, 'covid19_horiz.gif', steps_per_period=3)

7、設置幀率,默認為500ms

# 設置20幀的總時間,此處為200msbcr.bar_chart_race(df, 'covid19_horiz.gif', steps_per_period=20, period_length=200)

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

# 輸出gifbcr.bar_chart_race(df, 'covid19_horiz.gif', interpolate_period=True)

9、繪圖屬性設置

# figsize-設置畫布大小,默認(6, 3.5)# dpi-圖像分辨率,默認144# label_bars-顯示柱狀圖的數值信息,默認為True# period_label-顯示時間標簽信息,默認為True# title-圖表標題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')

10配置標簽文字大小

# bar_label_size-柱狀圖標簽文字大小# tick_label_size-坐標軸標簽文字大小# title_size-標題標簽文字大小bcr.bar_chart_race(df, 'covid19_horiz.gif', bar_label_size=4, tick_label_size=5,????????????????????title='COVID-19?Deaths?by?Country',?????????????????????title_size='smaller')

11全局字體屬性設置

# shared_fontdict-全局字體屬性bcr.bar_chart_race(df, 'covid19_horiz.gif', title='COVID-19 Deaths by Country',????????????????????????shared_fontdict={'family':?'Helvetica',?'weight':?'bold',????????????????????????'color':?'rebeccapurple'})

12透明度,邊框等設置

# bar_kwargs-條形圖屬性設置參數bcr.bar_chart_race(df, 'covid19_horiz.gif', bar_kwargs={'alpha': .2, 'ec': 'black', 'lw': 3})

13日期格式設置

# 設置日期格式,默認為'%Y-%m-%d'bcr.bar_chart_race(df, 'covid19_horiz.gif', period_fmt='%b %-d, %Y')

14改日期標簽為數值格式

# 設置日期標簽為數值bcr.bar_chart_race(df.reset_index(drop=True), 'covid19_horiz.gif', interpolate_period=True, period_fmt='Index value - {x:.2f}')

15添加匯總統計

#設置文本位置、數值、大小、顏色等def summary(values, ranks): total_deaths = int(round(values.sum(), -2)) s = f'Total Deaths - {total_deaths:,.0f}'return {'x': .99, 'y': .05, 's': s, 'ha': 'right', 'size': 8}# 添加文本bcr.bar_chart_race(df, 'covid19_horiz.gif', ???????????????????period_summary_func=summary

16添加垂直條參考線(平均值、分位數等

# 設置垂直條數值,分位數def func(values, ranks): return values.quantile(.9)# 添加垂直條bcr.bar_chart_race(df, 'covid19_horiz.gif', ???????????????????perpendicular_bar_func=func)

17、設置柱狀圖顏色

'dark12' is the default colormap. If there are more than 10 columns,?then the default colormap will be 'dark24'

# 設置柱狀圖顏色 bcr.bar_chart_race(df, 'covid19_horiz.gif', cmap='accent')


18、顏色不重復

#filter_column_colors保證顏色不重復bcr.bar_chart_race(df, 'covid19_horiz.gif', cmap='accent', filter_column_colors=True)

19、中文支持配置

中文配置只需在第三方庫的_make_chart.py文件中,加入如下三行代碼。

#中文顯示plt.rcParams['font.sans-serif'] = ['SimHei'] #Windowsplt.rcParams['font.sans-serif'] = ['Hiragino Sans GB'] #Macplt.rcParams['axes.unicode_minus'] = False

如果上述方法行不通,請參考文章:https://ask.hellobi.com/blog/safa/36673

20、自定義顏色

此外通過在「_colormaps.py」文件中添加顏色信息,經cmap引用,即可自定義配置顏色。

colormaps?=?{"new_colors": ['#ff812c','#ff5a5a','#00c5d2','#a64dff','#4e70f0','#f95dba','#ffce2b' ] }

獲取文章中的數據,關注公眾號【AI入門學習】,回復「條形圖」即可

【完】

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯

獲取一折本站知識星球優惠券,復制鏈接直接打開:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python基础】刷爆网络的动态条形图,3行Python代码就能搞定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。