<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基礎(chǔ)】刷爆網(wǎng)絡(luò)的動(dòng)態(tài)條形圖,3行Python代碼就能搞定

          共 5365字,需瀏覽 11分鐘

           ·

          2020-11-03 18:44

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


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

          1、官方參考文檔

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

          說(shuō)明文檔: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包:不然無(wú)法輸出 mp4/m4v/mov/等格式的視頻,該包比較復(fù)雜,需要配置變量環(huán)境,具體操作可以看看這個(gè)博客:

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

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


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

          上述準(zhǔn)備都做好了,那就可以開(kāi)始畫(huà)圖了,利用官方提供的數(shù)據(jù),直接加載就可以,我的數(shù)據(jù)下載沒(méi)成功,所以自己上傳數(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ù)畫(huà)圖

          如果是自己的數(shù)據(jù),要進(jìn)行一定的處理,達(dá)到畫(huà)圖格式,不然會(huì)報(bào)錯(cuò)。

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

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

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


          下面是個(gè)我自己制作的一個(gè)視頻,金庸小說(shuō)人氣排行榜,數(shù)據(jù)獲取,關(guān)注公眾號(hào)AI入門(mén)學(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('金庸小說(shuō)人氣排行榜.csv')df?=?df.set_index(keys='date')# 生成mp4圖像bcr.bar_chart_race(df,                    filename='金庸小說(shuō)人氣排行榜.MP4',                     steps_per_period = 30,                    period_length = 1000,                   title='金庸小說(shuō)人氣排行榜'                  )




          四、圖形美化

          作者還提供了很多參數(shù),對(duì)圖形進(jìn)行調(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個(gè)國(guó)家的數(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ù)值越小,越不流暢。越大,越流暢。默認(rèn)為10比較流暢,改為3就有些卡頓了bcr.bar_chart_race(df, 'covid19_horiz.gif', steps_per_period=3)


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

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


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

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


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

          # figsize-設(shè)置畫(huà)布大小,默認(rèn)(6, 3.5)# dpi-圖像分辨率,默認(rèn)144# label_bars-顯示柱狀圖的數(shù)值信息,默認(rèn)為T(mén)rue# period_label-顯示時(shí)間標(biāo)簽信息,默認(rèn)為T(mén)rue# 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è)置日期格式,默認(rèn)為'%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)計(jì)

          #設(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、中文支持配置

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

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

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


          20、自定義顏色

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

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

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


          【完】

          往期精彩回顧





          獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):

          https://t.zsxq.com/y7uvZF6

          本站qq群704220115。

          加入微信群請(qǐng)掃碼:

          瀏覽 65
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  亚洲国产日韩在线一区 | 狠狠干,狠狠操 | 99久久99久久久国产精品青草 | 在线看一区二区三区四区 | 看a网站|