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

人生苦短,我用 Pythonhtml

前文傳送門:python

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

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

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

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

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

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

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

小白學 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 是由國人作的,有中文文檔,下面先貼幾個官方的連接:

官方文檔:pyecharts.org/#/zh-cn/int…

GitHub:github.com/pyecharts/p…

百度 Echarts 示例: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 ,查看地址爲:github.com/pyecharts/p… ,能夠看到最新版本是 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

參考

pyecharts.org/#/zh-cn/qui…

您的掃碼關注,是對小編堅持原創的最大鼓勵:)
相關文章
相關標籤/搜索