python可視化神器——pyecharts庫

pyecharts是什麼?

pyecharts 是一個用於生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數據可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒,

pyecharts 是為了與 Python 進行對接,方便在 Python 中直接使用數據生成圖。使用pyecharts可以生成獨立的網頁,也可以在flask、django中集成使用。

安裝很簡單:pip install pyecharts

如需使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可,同時兼容 Python2 和 Python3 的 Jupyter Notebook 環境。所有圖表均可正常顯示,與瀏覽器一致的交互體驗,簡直不要太強大。

參考自pyecharts官方文檔:http://pyecharts.org

首先開始來繪製你的第一個圖表

python可視化神器——pyecharts庫

python可視化神器——pyecharts庫

使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可

  • add() 主要方法,用於添加圖表的數據和設置各種配置項
  • render() 默認將會在根目錄下生成一個 render.html 的文件,文件用瀏覽器打開。

使用主題

自 0.5.2+ 起,pyecharts 支持更換主體色系

python可視化神器——pyecharts庫

使用 pyecharts-snapshot 插件

如果想直接將圖片保存為 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用該插件請確保你的系統上已經安裝了 Nodejs 環境。

  1. 安裝 phantomjs $ npm install -g phantomjs-prebuilt
  2. 安裝 pyecharts-snapshot $ pip install pyecharts-snapshot
  3. 調用 render 方法 bar.render(path='snapshot.png') 文件結尾可以為 svg/jpeg/png/pdf/gif。請注意,svg 文件需要你在初始化 bar 的時候設置 renderer='svg'。

圖形繪製過程

基本上所有的圖表類型都是這樣繪製的:

  1. chart_name = Type() 初始化具體類型圖表。
  2. add() 添加數據及配置項。
  3. render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。

add() 數據一般為兩個列表(長度一致)。如果你的數據是字典或者是帶元組的字典。可利用 cast() 方法轉換。

多次顯示圖表

從 v0.4.0+ 開始,pyecharts 重構了渲染的內部邏輯,改善效率。推薦使用以下方式顯示多個圖表。如果使是 Numpy 或者 Pandas,可以參考這個示例

python可視化神器——pyecharts庫

當然你也可以採用更加酷炫的方式,使用 Jupyter Notebook 來展示圖表,matplotlib 有的,pyecharts 也會有的

Note: 從 v0.1.9.2 版本開始,廢棄 render_notebook() 方法,現已採用更加 pythonic 的做法。直接調用本身實例就可以了。

比如這樣

python可視化神器——pyecharts庫

還有這樣

python可視化神器——pyecharts庫

如果使用的是自定義類,直接調用自定義類示例即可

python可視化神器——pyecharts庫

圖表配置

  • 圖形初始化
  • 通用配置項
  • xyAxis:平面直角座標系中的 x、y 軸。(Line、Bar、Scatter、EffectScatter、Kline)
  • dataZoom:dataZoom 組件 用於區域縮放,從而能自由關注細節的數據信息,或者概覽數據整體,或者去除離群點的影響。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)
  • legend:圖例組件。圖例組件展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。
  • label:圖形上的文本標籤,可用於說明圖形的一些數據信息,比如值,名稱等。
  • lineStyle:帶線圖形的線的風格選項(Line、Polar、Radar、Graph、Parallel)
  • grid3D:3D笛卡爾座標系組配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
  • axis3D:3D 笛卡爾座標系 X,Y,Z 軸配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
  • visualMap:是視覺映射組件,用於進行『視覺編碼』,也就是將數據映射到視覺元素(視覺通道)
  • markLine&markPoint:圖形標記組件,用於標記指定的特殊數據,有標記線和標記點兩種。(Bar、Line、Kline)
  • tooltip:提示框組件,用於移動或點擊鼠標時彈出數據內容
  • toolbox:右側實用工具箱

圖表詳細

  • Bar(柱狀圖/條形圖)
  • Bar3D(3D 柱狀圖)
  • Boxplot(箱形圖)
  • EffectScatter(帶有漣漪特效動畫的散點圖)
  • Funnel(漏斗圖)
  • Gauge(儀表盤)
  • Geo(地理座標系)
  • GeoLines(地理座標系線圖)
  • Graph(關係圖)
  • HeatMap(熱力圖)
  • Kline/Candlestick(K線圖)
  • Line(折線/面積圖)
  • Line3D(3D 折線圖)
  • Liquid(水球圖)
  • Map(地圖)
  • Parallel(平行座標系)
  • Pie(餅圖)
  • Polar(極座標系)
  • Radar(雷達圖)
  • Sankey(桑基圖)
  • Scatter(散點圖)
  • Scatter3D(3D 散點圖)
  • ThemeRiver(主題河流圖)
  • TreeMap(矩形樹圖)
  • WordCloud(詞雲圖)
  • 用戶自定義
  • Grid 類:並行顯示多張圖
  • Overlap 類:結合不同類型圖表疊加畫在同張圖上
  • Page 類:同一網頁按順序展示多圖
  • Timeline 類:提供時間線輪播多張圖
  • 統一風格

注:pyecharts v0.3.2以後,pyecharts 將不再自帶地圖 js 文件。如用戶需要用到地圖圖表,可自行安裝對應的地圖文件包。

地圖文件被分成了三個 Python 包,分別為:

全球國家地圖:

echarts-countries-pypkg

中國省級地圖:

echarts-china-provinces-pypkg

中國市級地圖:

echarts-china-cities-pypkg

python可視化神器——pyecharts庫

直接使用python的pip安裝

但是這裡大家一定要注意,安裝完地圖包以後一定要重啟jupyter notebook,不然是無法顯示地圖的。

python可視化神器——pyecharts庫

顯示如下:

python可視化神器——pyecharts庫

總得來說,這是一個非常強大的可視化庫,既可以集成在flask、Django開發中,也可以在做數據分析的時候單獨使用,實在是居家旅行的必備神器啊

小夥伴們如果發現了更好玩的庫,歡迎留言。。。


分享到:


相關文章: