公眾號:尤而小屋
作者:Peter
編輯:Peter
大家好娄蔼,我是Peter
一直以來都在堅持更新plotly_express
可視化庫的內(nèi)容结窘,從基本的一行代碼出各種圖痹籍,到每個類型圖的繪制,再到圖形的繪制技巧晦鞋,內(nèi)容還是非常的豐富蹲缠。
plotly_express
可以說是自己目前見過最棒的庫,主要是體現(xiàn)在3點:
- 代碼簡潔
- 圖形漂亮悠垛,顏色賊好看
- 動態(tài)可視化
不愧是可視化神器??以后還會繼續(xù)補充相關(guān)內(nèi)容线定,特別是plotly_express
和dash
的結(jié)合。
從今天開始也要寫另一個可視化庫:pyecharts
确买。這是一個純國產(chǎn)的可視化庫斤讥,也非常的強大。所有的文章都會是基于官網(wǎng)的資料和示例湾趾,以及自己使用的實際案例芭商。
聲明
在此鄭重聲明:接下來關(guān)于pyecharts的全部文章都是基于版本V1.7
。寫這個聲明的原因搀缠,是因為pyecharts
有兩個版本:V0.5和V1.0铛楣。
Peter剛開始學(xué)習(xí)Pyecharts的時候,網(wǎng)上看到的很多的資料都是老的艺普,基于V0.5的簸州,深受其害。在此告訴大家:一定要用V1.0+
它們二者的語法之間是不兼容的歧譬,并不存在太多的聯(lián)系岸浑。目前網(wǎng)上很多的教程和博客都是基于
V0.5
但是V0.5以后團隊不會再維護了。
自己曾經(jīng)在使用這個庫的時候瑰步,開始沒有意識到這個版本的問題矢洲,找到的很多文章中的示例代碼都不能直接使用,踩過很多的坑缩焦,后來才明白是版本的原因读虏。
??將來的所有文章都是基于V1.0
??將來的所有文章都是基于V1.0
??將來的所有文章都是基于V1.0
什么是pyecharts
在此,引用官網(wǎng)上的一段話來介紹什么是pyecharts:
Echarts 是一個由百度開源的數(shù)據(jù)可視化舌界,憑借著良好的交互性掘譬,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認可呻拌。
而 Python 是一門富有表達力的語言葱轩,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時,pyecharts 誕生了靴拱。
說的直白些:pyecharts=python+echarts
特性
首先我們高度概括:????
- 簡潔的 API 設(shè)計垃喊,使用如絲滑般流暢,支持鏈?zhǔn)秸{(diào)用
- 囊括了 30+ 種常見圖表袜炕,應(yīng)有盡有
- 支持主流 Notebook 環(huán)境本谜,Jupyter Notebook 和 JupyterLab
- 可輕松集成至 Flask,Django 等主流 Web 框架
- 高度靈活的配置項偎窘,可輕松搭配出精美的圖表
- 多達 400+ 地圖文件以及原生的百度地圖乌助,為地理數(shù)據(jù)可視化提供強有力的支持
安裝
下面是自己經(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他托、默認生成render.html
文件
from pyecharts.charts import Bar # V1版本的導(dǎo)入類方式!F推稀I筒巍!非常關(guān)鍵沿盅,看到這種方式才是V1
bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 會生成本地 HTML 文件把篓,默認會在當(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 默認值為 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)用
在繪圖的時候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ā)者依舊可以單獨調(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 項目
$ git clone https://github.com/pyecharts/pyecharts-assets.git
- 安裝擴展插件
$ 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 默認值為 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)) # 初始化的時候指定主題
.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' #仙境
'''
全局配置
在繪制圖形的時候揍很,經(jīng)常需要對圖形進行各種個性化的配置郎楼,請務(wù)必記住下面的這張圖:
多種圖形
下面介紹基于Pyecharts繪制的各種圖形:
1万伤、柱狀圖
2、折線圖
3呜袁、面積圖
4敌买、K線圖
5、山捉纾基圖
6虹钮、省份地圖
7、漏斗圖
當(dāng)然Pyehcharts能夠繪制的圖形和功能遠不止這些膘融,以后會慢慢介紹芙粱,請期待~