pyecharts極簡入門教程

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

pyecharts4步輸出圖表
簡潔的API設計,支持鏈式調(diào)用
多種主題可選,豐富的參數(shù)設置
可交互的可視化效果,且可移植到PPT中
提供了常用圖表類型接口,包括matplotlib和seaborn不支持的一些圖表:例如詞云、可視化地圖等
基于以上這些原因,pyecharts是個人在可視化輸出過程中應用僅次于matplotlib和seaborn的第三大可視化庫。當然,各可視化庫都有其各自擅長場景,本無優(yōu)劣高下之分。本文旨在介紹pyecharts圖表制作中最基礎的套路,掌握這些基本操作、再輔以官網(wǎng)詳盡教程,基本上常規(guī)圖表都是可以的!
個人認為學習pyecharts無需熟記各類參數(shù),而僅需掌握通用原理和流程即可,具體操作可待實際應用時查閱相應源碼和官網(wǎng)教程。所以本文給出的是一份極簡教程,而不會逐一介紹面面俱到。
與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
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)用背后的原理,則很容易弄懂上面的代碼:實際上其等價于如下形式:
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輸出可視化圖表的通用方法。
pyecharts提供了3類圖表參數(shù)設置類型,分別是圖表設置項、通用設置項、系列設置項,其中:
圖表設置項是具體到某個特定圖表對象的設置參數(shù),各圖表可選設置參數(shù)不同
通用設置項最為常用,例如圖表初始化設置就屬于通用設置中的一項,另外包括標題、坐標軸、可視化縮放條等都屬于通用設置項
系列設置項則可以用于設置圖表的某些具體參數(shù),例如label可設置數(shù)據(jù)標簽是否顯示以及位置等
對應相應設置項,pyecharts分別提供了設置接口:
set_global_opts()
set_series_opts()
最后,pyecharts提供了將可視化圖表輸出的方式,實際較為常用的有兩種:
render()輸出到網(wǎng)頁中
render_notebook()在jupyter中即時顯示,具體區(qū)分notebook和jupyter lab兩種,可在全局參數(shù)中設置
◆ ◆ ◆ ◆ ◆
麟哥新書已經(jīng)在當當上架了,點擊下方小程序即可進入當當購買頁面
數(shù)據(jù)森麟公眾號的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關內(nèi)容,還沒有加入的小伙伴可以掃描下方管理員二維碼,進群前一定要關注公眾號奧,關注后讓管理員幫忙拉進群,期待大家的加入。
管理員二維碼:
● 麟哥拼了!!!親自出鏡推薦自己新書《數(shù)據(jù)分析師求職面試指南》
● 你相信逛B站也能學編程嗎
點擊閱讀原文,即可參與當當優(yōu)惠購書活動
