小白學 Python 數據分析(20):pyecharts 概述


人生苦短,我用 Python

前文傳送門:

小白學 Python 數據分析(1):數據分析基礎

小白學 Python 數據分析(2):Pandas (一)概述

小白學 Python 數據分析(3):Pandas (二)數據結構 Series

小白學 Python 數據分析(4):Pandas (三)數據結構 DataFrame

小白學 Python 數據分析(5):Pandas (四)基礎操作(1)查看數據

小白學 Python 數據分析(6):Pandas (五)基礎操作(2)數據選擇

小白學 Python 數據分析(7):Pandas (六)數據導入

小白學 Python 數據分析(8):Pandas (七)數據預處理

小白學 Python 數據分析(9):Pandas (八)數據預處理(2)

小白學 Python 數據分析(10):Pandas (九)數據運算

小白學 Python 數據分析(11):Pandas (十)數據分組

小白學 Python 數據分析(12):Pandas (十一)數據透視表(pivot_table)

小白學 Python 數據分析(13):Pandas (十二)數據表拼接

小白學 Python 數據分析(14):Pandas (十三)數據導出

小白學 Python 數據分析(15):數據可視化概述

小白學 Python 數據分析(16):Matplotlib(一)坐標系

小白學 Python 數據分析(17):Matplotlib(二)基礎操作

小白學 Python 數據分析(18):Matplotlib(三)常用圖表(上)

小白學 Python 數據分析(19):Matplotlib(四)常用圖表(下)

引言

在開始說 pyecharts 之前,先說一個個人的拙見,我一直認為學習、了解或者使用某個類庫的時候最好是通過官方的文檔,有些時候某些庫的文檔是由外文編寫的,閱讀不便的時候通過瀏覽器自帶的翻譯大致也能看懂。而 pyecharts 是由國人做的,有中文文檔,下面先貼幾個官方的鏈接:

官方文檔:https://pyecharts.org/#/zh-cn/intro

GitHub:https://github.com/pyecharts/pyecharts

百度 Echarts 示例:https://www.echartsjs.com/examples/zh/

簡介就直接摘抄官方文檔了,以下內容來自官方文檔:

Echarts 是一個由百度開源的數據可視化,憑借着良好的交互性,精巧的圖表設計,得到了眾多開發者的認可。而 Python 是一門富有表達力的語言,很適合用於數據處理。當數據分析遇上數據可視化時,pyecharts 誕生了。

  • 簡潔的 API 設計,使用如絲滑般流暢,支持鏈式調用
  • 囊括了 30+ 種常見圖表,應有盡有
  • 支持主流 Notebook 環境,Jupyter Notebook 和 JupyterLab
  • 可輕松集成至 Flask,Django 等主流 Web 框架
  • 高度靈活的配置項,可輕松搭配出精美的圖表
  • 詳細的文檔和示例,幫助開發者更快的上手項目
  • 多達 400+ 地圖文件以及原生的百度地圖,為地理數據可視化提供強有力的支持

安裝

安裝還是照着官方文檔來,首先是使用 pip 進行安裝:

pip install pyecharts

這里有一點需要注意,目前的 pyecharts v1.x 的版本僅支持 python3.6 以上的版本。

如果不想通過 pip 安裝,還可以使用源碼進行安裝:

git clone https://github.com/pyecharts/pyecharts.git
cd pyecharts
pip install -r requirements.txt
python setup.py install
# 或者執行 python install.py

官方還為我們提供了一個查看當前 pyecharts 版本的方法:

import pyecharts

print(pyecharts.__version__)

我這邊運行得到的結果是:

1.7.0

目前(2020年3月20日)官方最新的版本為 v1.7.1 ,查看地址為:https://github.com/pyecharts/pyecharts/releases ,可以看到最新版本是 8 天前發布的。

因為我這里的 pyecharts 是上周裝的,在這之間正好發布了新的版本,如果想要更新版本,可以使用以下 pip 命令進行更新:

pip install --upgrade pyecharts

我這里更新完以后再次運行上面的查看版本的方法,已經變成最新的 v1.7.1 版本了。

快速開始

pyecharts 庫裝好了,接下來趕緊搞一個最簡單的示例先試試看:

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis([2011,2012,2013,2014,2015,2016,2017])
bar.add_yaxis("產品銷量", [58000,60200,63000,71000,84000,90500,107000])

bar.render()

調用 render() 方法的時候會在本地生成一個 HTML 文件,默認會在當前目錄生成 render.html 文件,同時也可以傳入路徑的參數,如 bar.render("mycharts.html") ,拿着這個 HTML 文件直接扔到瀏覽器中運行就能看到我們剛才創建的柱狀圖了。

pyecharts 的方法都支持鏈式調用,就是上面這一段我們可以換成鏈式調用的寫法,如下:

from pyecharts.charts import Bar

bar = (
    Bar()
    .add_xaxis([2011,2012,2013,2014,2015,2016,2017])
    .add_yaxis("產品銷量", [58000,60200,63000,71000,84000,90500,107000])
)

bar.render()

鏈式調用的除了寫法和前面的不同,作用完全相同,各位同學選擇自己習慣的寫法就行。

在使用 pyecharts 的時候,大量的配置是使用 options 完成的,下面看一個使用 options 進行主標題和副標題配置的小示例:

from pyecharts.charts import Bar
from pyecharts import options as opts

bar = (
    Bar()
    .add_xaxis([2011,2012,2013,2014,2015,2016,2017])
    .add_yaxis("產品銷量", [58000,60200,63000,71000,84000,90500,107000])
    .set_global_opts(title_opts=opts.TitleOpts(title="11 ~ 17年 xxx 公司 xx 產品銷量圖", subtitle="這里是副標題"))
)
bar.render('render_1.html')

# 調用方法寫法,與上面的鏈式調用無任何區別
bar = Bar()
bar.add_xaxis([2011,2012,2013,2014,2015,2016,2017])
bar.add_yaxis("產品銷量", [58000,60200,63000,71000,84000,90500,107000])
bar.set_global_opts(title_opts=opts.TitleOpts(title="11 ~ 17年 xxx 公司 xx 產品銷量圖", subtitle="這里是副標題"))
bar.render('render_1.html')

如果想要將結果保存成圖片,需要使用 snapshot-selenium 將結果渲染成圖片,如果沒有安裝的話需要先安裝,安裝命令如下:

pip install snapshot_selenium

這里有一點需要注意,如果想要正常的使用 snapshot_selenium ,需要本地有和當前 Chrome 正常配套的 ChromeDriver ,如果沒有,需要先安裝。

如果是我的老讀者的話,前面在介紹爬蟲的時候有介紹過 ChromeDriver 怎么安裝,具體可以參考「小白學 Python 爬蟲(2):前置准備(一)基本類庫的安裝」

接着看一個示例:

from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot

bar = (
    Bar()
        .add_xaxis([2011, 2012, 2013, 2014, 2015, 2016, 2017])
        .add_yaxis("產品銷量", [58000, 60200, 63000, 71000, 84000, 90500, 107000])
        .set_global_opts(title_opts=opts.TitleOpts(title="11 ~ 17年 xxx 公司 xx 產品銷量圖", subtitle="這里是副標題"))
)
make_snapshot(snapshot, bar.render(), "bar_1.png")

這時,在同目錄下生成了一個名稱為 bar_1.png 的圖片,就不貼出來了,和上面的圖片是一樣的,只是這張 png 圖片是透明底的。

同時,pyecharts 還提供了 10+ 種內置主題,如果有需要也可以自己定制自己喜歡的主題,示例如下:

from pyecharts.charts import Bar
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
        .add_xaxis([2011, 2012, 2013, 2014, 2015, 2016, 2017])
        .add_yaxis("產品A", [58000, 60200, 63000, 71000, 84000, 90500, 107000])
        .add_yaxis("產品B", [78000,80200,93000,101000,64000,70500,87000])
        .set_global_opts(title_opts=opts.TitleOpts(title="11 ~ 17年 xxx 公司 xx 產品銷量圖", subtitle="這里是副標題"))
)

bar.render('render_2.html')

結果如下:

代碼倉庫

老規矩,所有的示例代碼都會上傳至代碼管理倉庫 Github 和 Gitee 上,方便大家取用。

示例代碼-Github

示例代碼-Gitee

參考

https://pyecharts.org/#/zh-cn/quickstart


免責聲明!

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



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