Python數(shù)據(jù)可視化Pyecharts庫的使用教程
一、Pyecharts 概述
Pyechart 是一個用于生成 Echarts 圖表(Echarts 是基于 Javascript 的開源可視化圖表庫)的 Python 第三方庫。
1.1 Pyecharts 特性
根據(jù)官方文檔的介紹,Pyecharts 的特性如下:
1.簡潔的 API 設(shè)計,使用如絲滑般流暢,支持鏈式調(diào)用
2.包含了 30+ 種常見圖表,應(yīng)有盡有
3.支持主流 Notebook 環(huán)境,Jupyter Notebook 和 JupyterLab
4.可輕松集成至 Flask,Django 等主流 Web 框架
5.高度靈活的配置項,可輕松搭配出精美的圖表
6.詳細的文檔和示例,幫助開發(fā)者更快的上手項目
7.多達 400+ 地圖文件及原生的百度地圖,為地理數(shù)據(jù)可視化提供強有力的支持
Pyecharts 官網(wǎng)鏈接:https://pyecharts.org/#/
1.2 Pyecharts 入門案例
1.2.1 安裝 Pyecharts
# 通過 pip 安裝 Pyecharts $ pip install pyecharts # 安裝完成后可以通過以下命令檢查 Pyecharts 是否安裝成功 $ pip list
1.2.2 Pyecharts 入門案例
from pyecharts.charts import Bar
# v1 版本開始支持鏈式調(diào)用
bar = (
Bar()
.add_xaxis(['襯衫', '毛衣', '褲子'])
.add_yaxis('商家A', [10, 20, 30])
.add_yaxis('商家B', [30, 20, 10])
)
# render 會生成本地 html 文件,默認當(dāng)前目錄,且文件名稱為 render.html
# 同樣也可以傳入?yún)?shù),例如:bar.render('mycharts.html')
bar.render()運行上述程序,會在當(dāng)前 .py 文件目錄下生成一個 render.html,打開 render.html,展示的柱狀圖如下:

二、Pyecharts 配置項
Pyecharts 的配置項分為全局配置項、系列配置項,通過這些配置項,可以對 charts 圖中的展示內(nèi)容進行自定義。
2.1 全局配置項
全局配置可以通過 set_global_opts 方法進行設(shè)置,如下圖,可以通過全局配置項,自定義charts 圖的標題、圖例、提示框、工具箱等展示內(nèi)容。

2.1.1 全局配置項的使用
全局配置項的使用基本大致相同,因此,以 TitleOpts 標題設(shè)置項為例,詳細介紹一下如何去使用這些設(shè)置項,首先,通過官方文檔的介紹,可以基本知道 TitleOpts 支持的設(shè)置項有哪些:
class TitleOpts(
# 主標題文本,支持使用 \n 換行。
title: Optional[str] = None,
# 主標題跳轉(zhuǎn) URL 鏈接
title_link: Optional[str] = None,
# 主標題跳轉(zhuǎn)鏈接方式
# 默認值是: blank
# 可選參數(shù): 'self', 'blank'
# 'self' 當(dāng)前窗口打開; 'blank' 新窗口打開
title_target: Optional[str] = None,
# 副標題文本,支持使用 \n 換行。
subtitle: Optional[str] = None,
# 副標題跳轉(zhuǎn) URL 鏈接
subtitle_link: Optional[str] = None,
# 副標題跳轉(zhuǎn)鏈接方式
# 默認值是: blank
# 可選參數(shù): 'self', 'blank'
# 'self' 當(dāng)前窗口打開; 'blank' 新窗口打開
subtitle_target: Optional[str] = None,
# title 組件離容器左側(cè)的距離。
# left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
# 也可以是 'left', 'center', 'right'。
# 如果 left 的值為'left', 'center', 'right',組件會根據(jù)相應(yīng)的位置自動對齊。
pos_left: Optional[str] = None,
# title 組件離容器右側(cè)的距離。
# right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
pos_right: Optional[str] = None,
# title 組件離容器上側(cè)的距離。
# top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
# 也可以是 'top', 'middle', 'bottom'。
# 如果 top 的值為'top', 'middle', 'bottom',組件會根據(jù)相應(yīng)的位置自動對齊。
pos_top: Optional[str] = None,
# title 組件離容器下側(cè)的距離。
# bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
pos_bottom: Optional[str] = None,
# 標題內(nèi)邊距,單位px,默認各方向內(nèi)邊距為5,接受數(shù)組分別設(shè)定上右下左邊距。
# // 設(shè)置內(nèi)邊距為 5
# padding: 5
# // 設(shè)置上下的內(nèi)邊距為 5,左右的內(nèi)邊距為 10
# padding: [5, 10]
# // 分別設(shè)置四個方向的內(nèi)邊距
# padding: [
# 5, // 上
# 10, // 右
# 5, // 下
# 10, // 左
# ]
padding: Union[Sequence, Numeric] = 5,
# 主副標題之間的間距。
item_gap: Numeric = 10,
# 主標題字體樣式配置項,參考 `series_options.TextStyleOpts`
title_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
# 副標題字體樣式配置項,參考 `series_options.TextStyleOpts`
subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
)而前面有說到,全局配置項是通過 set_global_opts 進行設(shè)置,也就是說,在調(diào)用 set_global_opts 時,只需要在其入?yún)⒅刑砑由?title_opts,就可以針對 charts 圖進行一些標題的自定義,set_global_opts 相關(guān)源碼及相關(guān)案例如下:
def set_global_opts(
self,
title_opts: types.Title = opts.TitleOpts(),
legend_opts: types.Legend = opts.LegendOpts(),
tooltip_opts: types.Tooltip = None,
toolbox_opts: types.Toolbox = None,
brush_opts: types.Brush = None,
xaxis_opts: types.Axis = None,
yaxis_opts: types.Axis = None,
visualmap_opts: types.VisualMap = None,
datazoom_opts: types.DataZoom = None,
graphic_opts: types.Graphic = None,
axispointer_opts: types.AxisPointer = None,
):from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(['襯衫', '毛衣', '褲子'])
.add_yaxis('商家A', [10, 20, 30])
.add_yaxis('商家B', [30, 20, 10])
.set_global_opts(
title_opts=opts.TitleOpts(
title='This is title'
)
)
)
bar.render()
2.1.2 全局配置項使用總結(jié)
- 在調(diào)用 set_global_opts 時,可以追加相應(yīng)的全局配置項,支持的全局配置項可以參考 set_global_opts 源碼。
- 可以通過官方文檔或者查看源碼去了解這些全局配置項都支持哪些入?yún)ⅲ瑯右部梢酝ㄟ^源碼入手。
- 注意入?yún)⒌臄?shù)據(jù)類型,并不是所有全局配置項的入?yún)⒍际?str 類型。
2.2 系列配置項
系列配置可以通過 set_series_opts 方法進行設(shè)置,通過系列配置項,可以對文字、圖元等樣式進行配置。
2.2.1 系列配置項的使用
以 ItemStyleOpts 圖元設(shè)置項為例,同樣可以通過官方文檔的介紹,可以基本知道 ItemStyleOpts 支持的設(shè)置項有哪些:
class ItemStyleOpts(
# 圖形的顏色。
# 顏色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,
# 可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六進制格式,比如 '#ccc'。
# 除了純色之外顏色也支持漸變色和紋理填充
#
# 線性漸變,前四個參數(shù)分別是 x0, y0, x2, y2, 范圍從 0 - 1,相當(dāng)于在圖形包圍盒中的百分比,
# 如果 globalCoord 為 `true`,則該四個值是絕對的像素位置
# color: {
# type: 'linear',
# x: 0,
# y: 0,
# x2: 0,
# y2: 1,
# colorStops: [{
# offset: 0, color: 'red' // 0% 處的顏色
# }, {
# offset: 1, color: 'blue' // 100% 處的顏色
# }],
# global: false // 缺省為 false
# }
#
# 徑向漸變,前三個參數(shù)分別是圓心 x, y 和半徑,取值同線性漸變
# color: {
# type: 'radial',
# x: 0.5,
# y: 0.5,
# r: 0.5,
# colorStops: [{
# offset: 0, color: 'red' // 0% 處的顏色
# }, {
# offset: 1, color: 'blue' // 100% 處的顏色
# }],
# global: false // 缺省為 false
# }
#
# 紋理填充
# color: {
# image: imageDom, // 支持為 HTMLImageElement, HTMLCanvasElement,不支持路徑字符串
# repeat: 'repeat' // 是否平鋪, 可以是 'repeat-x', 'repeat-y', 'no-repeat'
# }
color: Optional[str] = None,
# 陰線 圖形的顏色。
color0: Optional[str] = None,
# 圖形的描邊顏色。支持的顏色格式同 color,不支持回調(diào)函數(shù)。
border_color: Optional[str] = None,
# 陰線 圖形的描邊顏色。
border_color0: Optional[str] = None,
# 描邊寬度,默認不描邊。
border_width: Optional[Numeric] = None,
# 支持 'dashed', 'dotted'。
border_type: Optional[str] = None,
# 圖形透明度。支持從 0 到 1 的數(shù)字,為 0 時不繪制該圖形。
opacity: Optional[Numeric] = None,
# 區(qū)域的顏色。
area_color: Optional[str] = None,
)具體使用方式如下:
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(['襯衫', '毛衣', '褲子'])
.add_yaxis('商家A', [10, 20, 30])
.add_yaxis('商家B', [30, 20, 10])
.set_series_opts(
itemstyle_opts=opts.ItemStyleOpts(
color='#0066FF'
)
)
)
bar.render()
在上面的 charts 圖中可以看到,charts 圖的顏色發(fā)生了變化,同樣可以發(fā)現(xiàn)一個問題,就是每個系列的顏色都是相同的,這樣的 charts 圖可能并不符合我們的預(yù)期結(jié)果,既然是系列配置項,那么我們的關(guān)注點可以放到 add_yaxis 上,可以看到,該方法同樣也是有一個 itemstyle_opts 入?yún)⒌模虼?,還可以進行如下方式的設(shè)置:
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(['襯衫', '毛衣', '褲子'])
.add_yaxis('商家A', [10, 20, 30], itemstyle_opts=opts.ItemStyleOpts(color='#5edd55'))
.add_yaxis('商家B', [30, 20, 10], itemstyle_opts=opts.ItemStyleOpts(color='#33c0eb'))
)
bar.render()
2.2.2 系列配置項使用總結(jié)
系列配置項的使用方式其實和全局配置項的使用方式基本相同:
- 在調(diào)用 set_series_opts 時,可以追加相應(yīng)的全局配置項,支持的全局配置項可以參考 set_series_opts 源碼。
- 可以通過官方文檔或者查看源碼去了解這些全局配置項都支持哪些入?yún)?,同樣也可以通過源碼入手。
- 注意入?yún)⒌臄?shù)據(jù)類型,并不是所有全局配置項的入?yún)⒍际?str 類型。
- 系列配置項支持在 charts 圖系列中進行追加。
三、Pyecharts 的總結(jié)
對于生成 charts 圖,無非是兩個步驟:1)獲取數(shù)據(jù),2)將數(shù)據(jù)生成 charts 圖,而 pyecharts 關(guān)注的重點則在于第二步,在了解了 pyecharts 的全局配置項和系列配置項之后,可以說是基本掌握了 pyecharts 的使用,對于 pyecharts 其他類型的 charts 圖不再進行演示,官方文檔上都有詳細的說明。
以上就是Python數(shù)據(jù)可視化Pyecharts庫的使用教程的詳細內(nèi)容,更多關(guān)于Python Pyecharts庫的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python數(shù)據(jù)可視化 pyecharts實現(xiàn)各種統(tǒng)計圖表過程詳解
- python使用pyecharts庫畫地圖數(shù)據(jù)可視化的實現(xiàn)
- python用pyecharts實現(xiàn)地圖數(shù)據(jù)可視化
- Python數(shù)據(jù)可視化Pyecharts庫實現(xiàn)桑葚圖效果
- Python?數(shù)據(jù)可視化神器Pyecharts繪制圖像練習(xí)
- Python數(shù)據(jù)可視化Pyecharts制作Heatmap熱力圖
- Python數(shù)據(jù)可視化之Pyecharts使用詳解
- Python?pyecharts案例超市4年數(shù)據(jù)可視化分析
相關(guān)文章
pandas實現(xiàn)按照多列排序-ascending
這篇文章主要介紹了pandas實現(xiàn)按照多列排序-ascending,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
詳解如何使用python實現(xiàn)猜數(shù)字游戲
“猜數(shù)字”游戲是一款簡單而有趣的小游戲,玩家需要在給定的范圍內(nèi)猜出一個由計算機隨機生成的數(shù)字,本文將使用Python語言來實現(xiàn)這款游戲,并詳細介紹其實現(xiàn)過程,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2024-04-04
python消費kafka數(shù)據(jù)批量插入到es的方法
今天小編就為大家分享一篇python消費kafka數(shù)據(jù)批量插入到es的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
神經(jīng)網(wǎng)絡(luò)python源碼分享
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)python源碼分享,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12


精心整理總結(jié)的Python自動化測試面試題