網(wǎng)站首頁 編程語言 正文
一、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 文件,默認當前目錄,且文件名稱為 render.html # 同樣也可以傳入?yún)?shù),例如:bar.render('mycharts.html') bar.render()
運行上述程序,會在當前 .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' 當前窗口打開; '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' 當前窗口打開; '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,相當于在圖形包圍盒中的百分比, # 如果 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 圖可能并不符合我們的預期結(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 圖不再進行演示,官方文檔上都有詳細的說明。
原文鏈接:https://juejin.cn/post/7059675488444219399
相關(guān)推薦
- 2022-08-19 WPF使用Geometry繪制幾何圖形_C#教程
- 2022-04-17 算法時間復雜度和空間復雜度
- 2022-07-04 Python+Pillow+Pytesseract實現(xiàn)驗證碼識別_python
- 2022-05-01 Python?數(shù)據(jù)可視化神器Pyecharts繪制圖像練習_python
- 2022-06-01 C語言詳細分析常見字符串函數(shù)與模擬實現(xiàn)_C 語言
- 2022-03-16 shell中的排序算法示例代碼_linux shell
- 2022-12-11 Rust?Aya?框架編寫?eBPF?程序_Rust語言
- 2022-05-27 redis分布式Jedis類型轉(zhuǎn)換的異常深入研究_Redis
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支