pyecharts介紹
pyechats是一個用於數據可視化的包。
Echats是百度開源的一個數據可視化js庫,主要用於數據可視化,pyecharts 是一個用於生成Echarts圖標的類庫,實際上就是Echarts和Python的對接。
pyecharts支持python2與python3,如果使用的是python2.7,需要在代碼頂部聲明字符編碼,否則會出現中文亂碼問題。
#coding=utf-8 from __future__ import unicode_literals
Pyecharts安裝
anaconda中沒有自帶pyecharts,需要單獨進行安裝。
1 pip install pyecharts
各種圖形的使用
引用包
from pyecharts import Bar
引用包有報錯:
ERROR:lml.utils:failed to import pyecharts_snapshot Traceback (most recent call last): File "c:\users\sheng\appdata\local\programs\python\python36-32\lib\site-packages\lml\utils.py", line 43, in do_import plugin_module = __import__(plugin_module_name) ModuleNotFoundError: No module named 'pyecharts_snapshot'
按照提示進行安裝對應的包,以及wheel包
pip install wheel pip install pyecharts_snapshot
主題
pyecharts除了默認的白色底色和dark,還支持安裝擴展包
pip install echarts-themes-pypkg
echarts-themes-pypkg包提供了vintage
, macarons
, infographic
, shine
和 roma
主題
使用:
bar.use_theme('vintage')
將圖片保存到本地
保存圖片有兩種方式,一種是點擊圖片右側工具欄的下載按鈕,保存格式為png,另一種是安裝相關的包,通過render()方法保存到本地。
第一種沒有什么好說的,這里說下第二種保存圖片的方法。
pyecharts-snapshot插件可以將圖片保存為png,gif,pdf等格式。
安裝phantomjs:
npm install -g phantomjs-prebuilt
安裝pyecharts-snapshost:
pip install pyecharts-snapshot
調用render方法保存圖片
bar.render(path="snapshot.png")
注:
安裝phantomjs時需要本地有nodejs環境,才能使用npm命令。
nodejs的安裝參考:
https://nodejs.org/en/download/
基本使用方法
基本上所有的圖的使用方法都是這樣的:
- chart_type=Type() 初始化具體的圖表對象
- chart_type.add() 添加數據及配置項
- chart_type.render() 生成.html文件
從v0.5.9開始,支持鏈式調用,如:
from pyecharts import Bar CLOTHES = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] clothes_v1 = [5, 20, 36, 10, 75, 90] clothes_v2 = [10, 25, 8, 60, 20, 80] (bar=Bar("柱狀圖示例") .add("商家A",CLOTHES,clothes_v1,is_stack=True) .add("商家B",CLOTHES,clothes_v2,is_stack=True) .render())
多次顯示圖表的推薦使用方法
從v0.4.0開始,pyecharts重構了渲染的內部邏輯,改善效率。推薦使用以下方式顯示多個圖表:
from pyecharts import Bar,Line from pyecharts.engine import create_default_environment bar=Bar("我的第一個圖表","這里是一個副標題") bar.add("服裝",["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"], [5,20,36,10,75,90]) line=Line("我的第一個圖表","這里是一個副標題") line.add("服裝",["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"], [5,20,36,10,75,90]) env=create_default_environment("html") env.render_chart_to_file(bar,path="./bar.html") env.render_chart_to_file(line,path="./line.html")
注:
create_default_environment(file_type)
file_type:'html','svg','png','jpeg','gif','pdf'
同樣的,保存圖片格式需要安裝phantomjs包。
這里創建了兩個對象,Bar和Line,這種方式使用了同一個引擎對象,減少了重復操作,速度有所提高,而使用Bar.render(),Line.render()則需要調用兩次。
柱形圖-Bar
attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] from pyecharts import Bar bar=Bar("這是主標題","這是副標題") bar.add( "商家A", attr, v1, is_stack=True ) bar.add( "商家B", attr, v2, is_stack=True ) bar.render("./MyFirstPyecharts.html") #指定生成html的路徑,不指定會默認生成在當前路徑下,命名為render.html #多個bar同時指定is_stack為True,會實現疊加效果
Tip:
- add()方法中根據is_stack可以設定柱形圖是否疊加顯示
- is_more_utils=True 參數來設置最右側工具欄,對生成的圖進行更多的操作,如將柱形圖更改為折線圖等
- 標記的使用:mark_point=['average']標記點,平均值;mark_line=['min','max','average']標記線,最大值、最小值和平均值
- 橫向柱形圖:is_convert=True,標識交換X軸和Y軸
折線圖-Line
from pyecharts import Line line=Line("折線示例圖") line.add( name,attr,v1, is_symbol_show=True )
餅圖-Pie
散點圖-Scatter
地圖
在使用pyecharts制作地圖展現時,會出現地圖中只顯示南海的問題。官方解釋是為了縮減項目本身的體機以及維持pyecharts項目輕量化運行,pyecharts從0.3.2開始將不再自帶地圖js文件。所以我們需要安裝一些包來解決。
pip install echarts-countries-pypkg --2M pip install echarts-china-provinces-pypkg --748KB pip install echarts-china-cities-pypkg --4M pip install echarts-china-counties-pypkg --4.4M pip install echarts-china-misc-pypkg --152KB pip install echarts-united-kingdom-pypkg --1.3M
這里備注一下:
我之前是安裝的anaconda,在使用conda install安裝這些包時有報環境錯誤,我干脆把anaconda卸載了,然后更換了pip源為豆瓣的,pip install 安裝成功!