國產(chǎn)可視化庫Pyecharts首秀

公眾號:尤而小屋
作者:Peter
編輯:Peter

大家好娄蔼,我是Peter

一直以來都在堅持更新plotly_express可視化庫的內(nèi)容结窘,從基本的一行代碼出各種圖痹籍,到每個類型圖的繪制,再到圖形的繪制技巧晦鞋,內(nèi)容還是非常的豐富蹲缠。

plotly_express可以說是自己目前見過最棒的庫,主要是體現(xiàn)在3點:

  • 代碼簡潔
  • 圖形漂亮悠垛,顏色賊好看
  • 動態(tài)可視化

不愧是可視化神器??以后還會繼續(xù)補充相關(guān)內(nèi)容线定,特別是plotly_expressdash的結(jié)合。

從今天開始也要寫另一個可視化庫:pyecharts确买。這是一個純國產(chǎn)的可視化庫斤讥,也非常的強大。所有的文章都會是基于官網(wǎng)的資料和示例湾趾,以及自己使用的實際案例芭商。

image

聲明

在此鄭重聲明:接下來關(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
image

官方提供的源碼安裝方式

$ 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()
image

解決不出圖

如果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()
image
image

支持的主題

下面記錄的是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ù)必記住下面的這張圖:

image

多種圖形

下面介紹基于Pyecharts繪制的各種圖形:

1万伤、柱狀圖

image

2、折線圖

image

3呜袁、面積圖

image

4敌买、K線圖

image

5、山捉纾基圖

image

6虹钮、省份地圖

image

7、漏斗圖

image

當(dāng)然Pyehcharts能夠繪制的圖形和功能遠不止這些膘融,以后會慢慢介紹芙粱,請期待~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氧映,隨后出現(xiàn)的幾起案子春畔,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件律姨,死亡現(xiàn)場離奇詭異振峻,居然都是意外死亡,警方通過查閱死者的電腦和手機择份,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門扣孟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人荣赶,你說我怎么就攤上這事凤价。” “怎么了拔创?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵料仗,是天一觀的道長。 經(jīng)常有香客問我伏蚊,道長立轧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任躏吊,我火速辦了婚禮氛改,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘比伏。我一直安慰自己胜卤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布赁项。 她就那樣靜靜地躺著葛躏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悠菜。 梳的紋絲不亂的頭發(fā)上舰攒,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音悔醋,去河邊找鬼摩窃。 笑死,一個胖子當(dāng)著我的面吹牛芬骄,可吹牛的內(nèi)容都是我干的猾愿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼账阻,長吁一口氣:“原來是場噩夢啊……” “哼蒂秘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起淘太,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤姻僧,失蹤者是張志新(化名)和其女友劉穎观挎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體段化,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嘁捷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了显熏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雄嚣。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖喘蟆,靈堂內(nèi)的尸體忽然破棺而出缓升,到底是詐尸還是另有隱情,我是刑警寧澤蕴轨,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布港谊,位于F島的核電站,受9級特大地震影響橙弱,放射性物質(zhì)發(fā)生泄漏歧寺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一棘脐、第九天 我趴在偏房一處隱蔽的房頂上張望斜筐。 院中可真熱鬧,春花似錦蛀缝、人聲如沸顷链。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗤练。三九已至,卻和暖如春在讶,著一層夾襖步出監(jiān)牢的瞬間煞抬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工真朗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留此疹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓遮婶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親湖笨。 傳聞我的和親對象是個殘疾皇子旗扑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容