純國產(chǎn)可視化庫Pyecharts首秀!
大家好,我是 Jack。
pyecharts是一個(gè)純國產(chǎn)的可視化庫,也非常的強(qiáng)大。本文的內(nèi)容都會(huì)是基于官網(wǎng)的資料和示例,以及自己使用的實(shí)際案例。

一、聲明
在此鄭重聲明:接下來關(guān)于pyecharts的全部文章都是基于版本V1.7。寫這個(gè)聲明的原因,是因?yàn)?/span>pyecharts有兩個(gè)版本:V0.5和V1.0。
Peter剛開始學(xué)習(xí)Pyecharts的時(shí)候,網(wǎng)上看到的很多的資料都是老的,基于V0.5的,深受其害。在此告訴大家:一定要用V1.0+
它們二者的語法之間是不兼容的,并不存在太多的聯(lián)系。目前網(wǎng)上很多的教程和博客都是基于
V0.5但是V0.5以后團(tuán)隊(duì)不會(huì)再維護(hù)了。
自己曾經(jīng)在使用這個(gè)庫的時(shí)候,開始沒有意識到這個(gè)版本的問題,找到的很多文章中的示例代碼都不能直接使用,踩過很多的坑,后來才明白是版本的原因。
二、什么是pyecharts
在此,引用官網(wǎng)上的一段話來介紹什么是pyecharts:
Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。
而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí),pyecharts 誕生了。
說的直白些:pyecharts=python+echarts
三、特性
首先我們高度概括Pyechart的特定:????
簡潔的 API 設(shè)計(jì),使用如絲滑般流暢,支持鏈?zhǔn)秸{(diào)用 囊括了 30+ 種常見圖表,應(yīng)有盡有 支持主流 Notebook 環(huán)境,Jupyter Notebook 和 JupyterLab 可輕松集成至 Flask,Django 等主流 Web 框架 高度靈活的配置項(xiàng),可輕松搭配出精美的圖表 多達(dá) 400+ 地圖文件以及原生的百度地圖,為地理數(shù)據(jù)可視化提供強(qiáng)有力的支持
四、安裝
下面是自己經(jīng)常安裝Python相關(guān)庫的代碼,速度非常快:
pip?install?-i?https://pypi.douban.com/simple?pyecharts==1.7??#?安裝pyecharts
pip?install?-i?https://pypi.douban.com/simple?pandas??#?安裝pandas

官方提供的源碼安裝方式
$?git?clone?https://github.com/pyecharts/pyecharts.git
$?cd?pyecharts
$?pip?install?-r?requirements.txt
$?python?setup.py?install
#?或者執(zhí)行?python?install.py
五、查看版本
import?pyecharts
print(pyecharts.__version__)

六、快速入門
1、默認(rèn)生成render.html文件
from?pyecharts.charts?import?Bar??# V1版本的導(dǎo)入類方式!!!!非常關(guān)鍵,看到這種方式才是V1
bar?=?Bar()
bar.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
bar.add_yaxis("商家A",?[5,?20,?36,?10,?75,?90])
#?render?會(huì)生成本地?HTML?文件,默認(rèn)會(huì)在當(dāng)前目錄生成?render.html?文件
bar.render()
2、指定文件和路徑
from?pyecharts.charts?import?Bar
bar?=?Bar()
bar.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
bar.add_yaxis("商家B",?[15,?20,?36,?18,?45,?69])
bar.render("firstpyecharts.html")??#?也可以傳入路徑參數(shù)
3、在notebook中直接出圖
#?注意:如果在notebook中不出圖,需要添加下面的兩行代碼
#?只需要在頂部聲明?CurrentConfig.ONLINE_HOST?即可
from?pyecharts.globals?import?CurrentConfig,?OnlineHostType
#?OnlineHostType.NOTEBOOK_HOST?默認(rèn)值為?http://localhost:8888/nbextensions/assets/
CurrentConfig.ONLINE_HOST?=?OnlineHostType.NOTEBOOK_HOST
#?--------------------------
from?pyecharts.charts?import?Bar
bar?=?Bar()
bar.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
bar.add_yaxis("商家B",?[15,?20,?36,?18,?45,?69])
bar.render_notebook()
七、鏈?zhǔn)秸{(diào)用
在繪圖的時(shí)候pyecharts支持鏈?zhǔn)秸{(diào)用:
from?pyecharts.charts?import?Bar
from?pyecharts?import?options?as?opts
#?V1?版本開始支持鏈?zhǔn)秸{(diào)用
bar?=?(
????Bar()
????.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
????.add_yaxis("商家A",?[5,?20,?36,?10,?75,?90])
????.set_global_opts(title_opts=opts.TitleOpts(title="主標(biāo)題",?subtitle="副標(biāo)題"))
????#?或者直接使用字典參數(shù)
????#?.set_global_opts(title_opts={"text":?"主標(biāo)題",?"subtext":?"副標(biāo)題"})
)
bar.render_notebook()??#?notebook中顯示
#?不習(xí)慣鏈?zhǔn)秸{(diào)用的開發(fā)者依舊可以單獨(dú)調(diào)用方法
bar?=?Bar()
bar.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
bar.add_yaxis("商家A",?[5,?20,?36,?10,?75,?90])
bar.set_global_opts(title_opts=opts.TitleOpts(title="主標(biāo)題",?subtitle="副標(biāo)題"))
bar.render()

八、解決不出圖
如果notebook中沒有出圖,解決方法在這里:pyecharts v1.5.1+ 起開始支持 Notebook 插件作為靜態(tài)資源服務(wù)。
獲取 pyecharts-assets 項(xiàng)目
$?git?clone?https://github.com/pyecharts/pyecharts-assets.git
安裝擴(kuò)展插件
$?cd?pyecharts-assets
#?安裝并激活插件
$?jupyter?nbextension?install?assets
$?jupyter?nbextension?enable?assets/main
配置 pyecharts 全局 HOST
#?只需要在頂部聲明?CurrentConfig.ONLINE_HOST?即可
from?pyecharts.globals?import?CurrentConfig,?OnlineHostType
#?OnlineHostType.NOTEBOOK_HOST?默認(rèn)值為?http://localhost:8888/nbextensions/assets/
CurrentConfig.ONLINE_HOST?=?OnlineHostType.NOTEBOOK_HOST
九、主題
示例
內(nèi)置主題類型可查看pyecharts.globals.ThemeType
from?pyecharts.charts?import?Bar
from?pyecharts?import?options?as?opts
from?pyecharts.globals?import?ThemeType
bar?=?(
????Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))??#?初始化的時(shí)候指定主題
????.add_xaxis(["襯衫",?"羊毛衫",?"雪紡衫",?"褲子",?"高跟鞋",?"襪子"])
????.add_yaxis("商家A",?[5,?20,?36,?10,?75,?90])
????.add_yaxis("商家B",?[15,?6,?45,?20,?35,?66])
????.set_global_opts(title_opts=opts.TitleOpts(title="主標(biāo)題",?subtitle="副標(biāo)題"))
)
bar.render_notebook()


支持的主題
下面記錄的是pyecharts支持的全部主題:
thm?=?'''
?|??CHALK?=?'chalk'?#粉筆風(fēng)
?|
?|??DARK?=?'dark'??#暗黑風(fēng)
?|
?|??ESSOS?=?'essos'?#厄索斯大陸
?|
?|??INFOGRAPHIC?=?'infographic'?#信息圖
?|
?|??LIGHT?=?'light'?#明亮風(fēng)格
?|
?|??MACARONS?=?'macarons'?#馬卡龍
?|
?|??PURPLE_PASSION?=?'purple-passion'?#紫色激情
?|
?|??ROMA?=?'roma'?#石榴
?|
?|??ROMANTIC?=?'romantic'?#浪漫風(fēng)
?|
?|??SHINE?=?'shine'?#閃耀風(fēng)
?|
?|??VINTAGE?=?'vintage'?#復(fù)古風(fēng)
?|
?|??WALDEN?=?'walden'?#瓦爾登湖
?|
?|??WESTEROS?=?'westeros'?#維斯特洛大陸
?|
?|??WHITE?=?'white'?#潔白風(fēng)
?|
?|??WONDERLAND?=?'wonderland'?#仙境
'''
十、全局配置
在繪制圖形的時(shí)候,經(jīng)常需要對圖形進(jìn)行各種個(gè)性化的配置,請務(wù)必記住下面的這張圖:

十一、多種圖形
下面介紹基于Pyecharts繪制的各種圖形:
1、柱狀圖

2、折線圖

3、面積圖

4、K線圖

5、桑基圖

6、面積圖

7、漏斗圖

當(dāng)然Pyehcharts能夠繪制的圖形和功能遠(yuǎn)不止這些,以后會(huì)慢慢介紹,請期待~
項(xiàng)目地址:
https://github.com/pyecharts/pyecharts

推薦閱讀
?? ?這兩個(gè)練手項(xiàng)目,我王多魚投了!?? ?我的十八般武器,這波穩(wěn)了!????從高考到程序員的成長之路
