<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極簡入門教程

          共 5709字,需瀏覽 12分鐘

           ·

          2020-08-01 23:52


          作者:luanhz
          來源:小數(shù)志

          導讀

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


          pyecharts4步輸出圖表


          pyecharts可視化圖表制作相比matplotlib和seaborn而言,其實是更為簡單的,因為它幾乎所有圖表都遵循了"同一套路",沒有過多復雜參數(shù)、無需細節(jié)技巧牽絆。但同時,它又有二者所不具備的一些優(yōu)點:
          • 簡潔的API設計,支持鏈式調(diào)用

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

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

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


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

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



          1. 設置通用項

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

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

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


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

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



          2. 選擇圖表

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


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


          這里有必要解釋下何為鏈式調(diào)用。可能很多pyecharts初學者在查閱官方文檔時會看到如下寫法(這里選用官網(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="我是副標題"),
          12        brush_opts=opts.BrushOpts(),
          13    )
          14    .render("bar_with_brush.html")
          15)


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

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


          • pyecharts將圖表類的每個方法都返回了self本身,這樣每個方法的返回值都是該圖表實例,進而實現(xiàn)鏈式調(diào)用

          實際上,這種鏈式調(diào)用在機器學習庫中是非常常見的一種設計,學過sklearn的讀者應該都了解一行代碼實現(xiàn)*.fit().score()的優(yōu)雅寫法。


          理解了鏈式調(diào)用背后的原理,則很容易弄懂上面的代碼:實際上其等價于如下形式:

           1from pyecharts import options as opts
          2from pyecharts.charts import Bar
          3from pyecharts.faker import Faker
          4
          5c = Bar() # 1.實例化
          6c.add_xaxis(Faker.choose()) # 2.添加x軸標簽
          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="我是副標題"),
          11        brush_opts=opts.BrushOpts(),
          12    ) # 5.添加通用設置項
          13c.render("bar_with_brush.html") # 6.輸出html圖表結果


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

          • 實例化一個直方圖對象

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

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

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

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

          • 輸出html圖表文件


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



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

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

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

          • 通用設置項最為常用,例如圖表初始化設置就屬于通用設置中的一項,另外包括標題、坐標軸、可視化縮放條等都屬于通用設置項

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


          對應相應設置項,pyecharts分別提供了設置接口:

          set_global_opts()
          set_series_opts()



          4. 輸出結果

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

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

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

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

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

          ◆ ◆ ◆  ◆ 

          麟哥新書已經(jīng)在當當上架了,點擊下方小程序即可進入當當購買頁面




          數(shù)據(jù)森麟公眾號的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關內(nèi)容,還沒有加入的小伙伴可以掃描下方管理員二維碼,進群前一定要關注公眾號奧,關注后讓管理員幫忙拉進群,期待大家的加入。


          管理員二維碼:

          猜你喜歡

           麟哥拼了!!!親自出鏡推薦自己新書《數(shù)據(jù)分析師求職面試指南》

           厲害了!麟哥新書登頂京東銷量排行榜!

           笑死人不償命的知乎沙雕問題排行榜

           用Python扒出B站那些“驚為天人”的阿婆主!

           你相信逛B站也能學編程嗎



          點擊閱讀原文即可參與當當優(yōu)惠購書活動

          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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片视频 | 免费的做爱网站 | 青娱乐在线伊人网 | 人妻无码中文字幕蜜桃 | 国产免费黄色电影 |