數據可視化之pyecharts


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包提供了vintagemacaronsinfographicshine 和 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/

基本使用方法

基本上所有的圖的使用方法都是這樣的:

  1. chart_type=Type()  初始化具體的圖表對象
  2. chart_type.add()     添加數據及配置項
  3. 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:

  1. add()方法中根據is_stack可以設定柱形圖是否疊加顯示
  2. is_more_utils=True 參數來設置最右側工具欄,對生成的圖進行更多的操作,如將柱形圖更改為折線圖等
  3. 標記的使用:mark_point=['average']標記點,平均值;mark_line=['min','max','average']標記線,最大值、最小值和平均值
  4. 橫向柱形圖: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 安裝成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM