<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>

          刷爆網(wǎng)絡(luò)的動態(tài)條形圖,3行Python代碼就能搞定

          共 5316字,需瀏覽 11分鐘

           ·

          2020-10-26 14:13

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


          一、前期準(zhǔn)備工作

          1、官方參考文檔

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

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


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

          pip install bar_chart_raceconda install -c conda-forge bar_chart_race

          0.2版本需要到github安裝

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


          3、安裝ffmpeg、ImageMagick?

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

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

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


          二、官方數(shù)據(jù)畫圖

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

          #加載包import bar_chart_race as bcr#下載數(shù)據(jù)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



          三、自己的數(shù)據(jù)畫圖

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

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

          原始數(shù)據(jù)

          處理后數(shù)據(jù)(date轉(zhuǎn)換成了索引)


          下面是個我自己制作的一個視頻,金庸小說人氣排行榜,數(shù)據(jù)獲取,關(guān)注公眾號AI入門學(xué)習(xí)】,回復(fù)「條形圖」即可獲取。

          import?osimport bar_chart_race as bcrimport?pandas?as?pddata_path = 'C:/Users/wuzhengxiang/Desktop/百度指數(shù)'os.chdir(data_path)#設(shè)置當(dāng)前工作空間print?(os.getcwd())#獲得當(dāng)前工作目錄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='金庸小說人氣排行榜'                  )




          四、圖形美化

          作者還提供了很多參數(shù),對圖形進行調(diào)整和美化,輸出的圖形更漂亮

          1、橫轉(zhuǎn)縱?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、類目數(shù)限制,此處設(shè)置為最多出現(xiàn)6條

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


          4、設(shè)置展示類目

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


          5、固定坐標(biāo)軸

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


          6、改變圖像幀數(shù)

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


          7、設(shè)置幀率,默認為500ms

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


          8、設(shè)置每幀增加的標(biāo)簽時間,默認為False

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


          9、繪圖屬性設(shè)置

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

          # bar_label_size-柱狀圖標(biāo)簽文字大小# tick_label_size-坐標(biāo)軸標(biāo)簽文字大小# title_size-標(biāo)題標(biāo)簽文字大小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全局字體屬性設(shè)置

          # 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透明度,邊框等設(shè)置

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


          13日期格式設(shè)置

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


          14改日期標(biāo)簽為數(shù)值格式

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


          15添加匯總統(tǒng)計

          #設(shè)置文本位置、數(shù)值、大小、顏色等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添加垂直條參考線(平均值、分位數(shù)等

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


          17、設(shè)置柱狀圖顏色

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

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


          18、顏色不重復(fù)

          #filter_column_colors保證顏色不重復(fù)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」文件中添加顏色信息,經(jīng)cmap引用,即可自定義配置顏色。

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

          獲取文章中的數(shù)據(jù),關(guān)注公眾號【AI入門學(xué)習(xí)】,回復(fù)「條形圖」即可


          【完】

          往期精彩:

          讓你的數(shù)據(jù)動起來!

          卷積神經(jīng)網(wǎng)絡(luò)可視化神器CNN Explainer

          Python之OS模塊39個常用函數(shù)詳解

          Python?math模塊55個函數(shù)詳解

          Python?字符串45個方法詳解

          Python 63個內(nèi)置函數(shù)超級詳解


          瀏覽 65
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  久青草中文在线观看 | 国产麻豆精品人妻无码 | 国产美女做爱A片是免费 | 日韩传媒中文字幕一区 | 亚洲成人视频在线免费观看 |