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

          pyecharts極簡入門教程

          共 3772字,需瀏覽 8分鐘

           ·

          2020-08-04 01:14


          導(dǎo)讀

          數(shù)據(jù)可視化是整個數(shù)據(jù)分析流程中的關(guān)鍵環(huán)節(jié),甚至有著一圖定成敗的關(guān)鍵性地位。前期,陸續(xù)推出了matplotlibseaborn詳細(xì)入門教程,對于常規(guī)的數(shù)據(jù)探索和基本圖表制作是足夠的,但二者的一個共同短板是圖表不可交互,缺少那種活靈靈的樣子!當(dāng)Python遇到百度echarts,pyecharts便應(yīng)用而生,最重要的是支持交互、且可移植到PPT報(bào)告中,這效果簡直是再理想不過的。


          pyecharts4步輸出圖表


          pyecharts可視化圖表制作相比matplotlib和seaborn而言,其實(shí)是更為簡單的,因?yàn)樗鼛缀跛袌D表都遵循了"同一套路",沒有過多復(fù)雜參數(shù)、無需細(xì)節(jié)技巧牽絆。但同時,它又有二者所不具備的一些優(yōu)點(diǎn):
          • 簡潔的API設(shè)計(jì),支持鏈?zhǔn)秸{(diào)用

          • 多種主題可選,豐富的參數(shù)設(shè)置

          • 可交互的可視化效果,且可移植到PPT中

          • 提供了常用圖表類型接口,包括matplotlib和seaborn不支持的一些圖表:例如詞云、可視化地圖等


          基于以上這些原因,pyecharts是個人在可視化輸出過程中應(yīng)用僅次于matplotlib和seaborn的第三大可視化庫。當(dāng)然,各可視化庫都有其各自擅長場景,本無優(yōu)劣高下之分。本文旨在介紹pyecharts圖表制作中最基礎(chǔ)的套路,掌握這些基本操作、再輔以官網(wǎng)詳盡教程,基本上常規(guī)圖表都是可以的!

          個人認(rèn)為學(xué)習(xí)pyecharts無需熟記各類參數(shù),而僅需掌握通用原理和流程即可,具體操作可待實(shí)際應(yīng)用時查閱相應(yīng)源碼和官網(wǎng)教程。所以本文給出的是一份極簡教程,而不會逐一介紹面面俱到。



          1.?設(shè)置通用項(xiàng)

          與seaborn類似,pyecharts也提供了多個通用設(shè)置項(xiàng),包括圖表主題、生成文件類型等,一般保持默認(rèn)即可得到較為不錯的圖表,但希望嘗試新的風(fēng)格時則可調(diào)用主題接口。主題設(shè)置作為具體圖表的一個初始化參數(shù)進(jìn)行設(shè)置,例如:

          from?pyecharts.charts?import?Bar
          from?pyecharts?import?options?as?opts
          from?pyecharts.globals?import?ThemeTyp

          #主題選擇作為圖表初始化參數(shù)進(jìn)行設(shè)置
          bar?=?Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))


          另一個通用項(xiàng)設(shè)置中較為實(shí)用的是notebook選項(xiàng),這在使用jupyter notebook或者jupyter lab中是必不可少的一項(xiàng),默認(rèn)為jupyter notebook方式。在jupyter lab中加入以下兩行通用設(shè)置后,即可調(diào)用render_notebook()在cell中查看圖表結(jié)果:

          from?pyecharts.globals?import?CurrentConfig,?NotebookType??
          CurrentConfig.NOTEBOOK_TYPE?=?NotebookType.JUPYTER_LAB



          2.?選擇圖表

          pyecharts提供了幾乎常用的所有圖表類型,除了柱狀圖、折線圖、餅圖、散點(diǎn)圖這4大通用可視化圖表外,還包括詞云、地圖、箱線圖、K線圖等專用圖表,另外,pyecharts也提供了常用圖表的3D形式,對于多類型圖表組合則提供了Page、Grid、Tab和Timeline4種形式,可將其看做是單圖表的容器,例如Timeline的一個簡單案例:原來用pyecharts畫個時間線圖這么簡單


          在確定圖表類型(圖表實(shí)例化)后則是添加數(shù)據(jù)。pyecharts在迭代1.0版本后,一個最大的特色就是支持鏈?zhǔn)秸{(diào)用,所以添加數(shù)據(jù)也是極其方便的。


          這里有必要解釋下何為鏈?zhǔn)秸{(diào)用??赡芎芏鄍yecharts初學(xué)者在查閱官方文檔時會看到如下寫法(這里選用官網(wǎng)上直方圖的一個demo):

           1from?pyecharts?import?options?as?opts
          2from?pyecharts.charts?import?Bar
          3from?pyecharts.faker?import?Faker
          4
          5c?=?(
          6????Bar()
          7????.add_xaxis(Faker.choose())
          8????.add_yaxis("商家A",?Faker.values())
          9????.add_yaxis("商家B",?Faker.values())
          10????.set_global_opts(
          11????????title_opts=opts.TitleOpts(title="Bar-Brush示例",?subtitle="我是副標(biāo)題"),
          12????????brush_opts=opts.BrushOpts(),
          13????)
          14????.render("bar_with_brush.html")
          15)


          這個鏈?zhǔn)秸{(diào)用將圖表的實(shí)例化、添加數(shù)據(jù)、設(shè)置參數(shù)、輸出結(jié)果放在了一句代碼執(zhí)行,對新人更為不友好的是將這些代碼放在了一組圓括號之中,搞得云里霧里(至少在我初學(xué)時是這樣的),實(shí)際上理解這段代碼需要掌握兩個知識點(diǎn):

          • Python中可將單個表達(dá)式或單個語句放在一組圓括號內(nèi)實(shí)現(xiàn)跨行書寫,例如下面例子中,寫法1合法,而寫法2報(bào)錯,區(qū)別僅在于有無圓括號


          • pyecharts將圖表類的每個方法都返回了self本身,這樣每個方法的返回值都是該圖表實(shí)例,進(jìn)而實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用

          實(shí)際上,這種鏈?zhǔn)秸{(diào)用在機(jī)器學(xué)習(xí)庫中是非常常見的一種設(shè)計(jì),學(xué)過sklearn的讀者應(yīng)該都了解一行代碼實(shí)現(xiàn)*.fit().score()的優(yōu)雅寫法。


          理解了鏈?zhǔn)秸{(diào)用背后的原理,則很容易弄懂上面的代碼:實(shí)際上其等價(jià)于如下形式:

           1from?pyecharts?import?options?as?opts
          2from?pyecharts.charts?import?Bar
          3from?pyecharts.faker?import?Faker
          4
          5c?=?Bar() # 1.實(shí)例化
          6c.add_xaxis(Faker.choose()) # 2.添加x軸標(biāo)簽
          7c.add_yaxis("商家A",?Faker.values()) # 3.添加y軸數(shù)據(jù)A
          8c.add_yaxis("商家B",?Faker.values()) # 4.添加y軸數(shù)據(jù)B
          9c.set_global_opts(
          10????????title_opts=opts.TitleOpts(title="Bar-Brush示例",?subtitle="我是副標(biāo)題"),
          11????????brush_opts=opts.BrushOpts(),
          12????) # 5.添加通用設(shè)置項(xiàng)
          13c.render("bar_with_brush.html") # 6.輸出html圖表結(jié)果


          6句代碼調(diào)用了6個接口,分別完成:

          • 實(shí)例化一個直方圖對象

          • 添加x軸數(shù)據(jù)

          • 添加y軸數(shù)據(jù)A

          • 添加y軸數(shù)據(jù)B

          • 設(shè)置通用參數(shù),包括標(biāo)題、區(qū)域圈選等

          • 輸出html圖表文件


          掌握了這一基本套路,基本上就理解了pyecharts輸出可視化圖表的通用方法。



          3. 設(shè)置圖表參數(shù)

          pyecharts提供了3類圖表參數(shù)設(shè)置類型,分別是圖表設(shè)置項(xiàng)、通用設(shè)置項(xiàng)、系列設(shè)置項(xiàng),其中:

          • 圖表設(shè)置項(xiàng)是具體到某個特定圖表對象的設(shè)置參數(shù),各圖表可選設(shè)置參數(shù)不同

          • 通用設(shè)置項(xiàng)最為常用,例如圖表初始化設(shè)置就屬于通用設(shè)置中的一項(xiàng),另外包括標(biāo)題、坐標(biāo)軸、可視化縮放條等都屬于通用設(shè)置項(xiàng)

          • 系列設(shè)置項(xiàng)則可以用于設(shè)置圖表的某些具體參數(shù),例如label可設(shè)置數(shù)據(jù)標(biāo)簽是否顯示以及位置等


          對應(yīng)相應(yīng)設(shè)置項(xiàng),pyecharts分別提供了設(shè)置接口:

          set_global_opts()
          set_series_opts()



          4. 輸出結(jié)果

          最后,pyecharts提供了將可視化圖表輸出的方式,實(shí)際較為常用的有兩種:

          • render()輸出到網(wǎng)頁中

          • render_notebook()在jupyter中即時顯示,具體區(qū)分notebook和jupyter lab兩種,可在全局參數(shù)中設(shè)置

          此外,pyecharts還提供了其他多種圖表輸出形式,例如make_snapshot()可直接輸出為png圖片。但如此一來則失去交互能力。

          pyecharts作為百度出echarts可視化庫與Python的結(jié)合體,其在制作可交互圖表方面具有很好的效果,且更重要的是相較于其他可視化庫學(xué)起來更易上手。如果說有什么明顯缺點(diǎn)的話,那么可能是其支持?jǐn)?shù)據(jù)類型較為傳統(tǒng):即僅支持Python基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),對數(shù)據(jù)科學(xué)庫的數(shù)據(jù)類型(如ndarray和dataframe)則不適用,這是由其定位所決定的。


          相關(guān)閱讀:


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

          手機(jī)掃一掃分享

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

          手機(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>
                  婷婷五月激情综合网 | 欧美三级毛片 | 国产精华7777777 | 视频在线播放一区二区 | 日韩在线卡一卡二 |