詳解Python+Pyecharts實(shí)現(xiàn)漏斗圖的繪制
任務(wù)描述
本關(guān)任務(wù):利用 PyEcharts 繪制一個(gè)基本的漏斗圖。
相關(guān)知識(shí)
為了完成本關(guān)任務(wù),你需要掌握:
1. Python 的基本語法
2. PyEcharts 漏斗圖的相關(guān)內(nèi)容
導(dǎo)入圖表類型
與日歷圖的操作類似,在文件的開始我們首先要將所需包導(dǎo)入,如右側(cè)編輯器中代碼所示。
導(dǎo)入漏斗圖的語句為
from pyecharts.charts import Funnel
為了方便構(gòu)造數(shù)據(jù),我們還導(dǎo)入了 PyEcharts 提供的虛擬數(shù)據(jù)包,如下所示:
from pyecharts.faker import Faker
構(gòu)造數(shù)據(jù)
通過 PyEcharts 提供的虛擬數(shù)據(jù)包 Faker,我們可以用如下語句構(gòu)造一個(gè)二維 List:
data = [ list(z) for z in zip(Faker.choose(), Faker.values()) ]
其中,F(xiàn)aker包中的 choose 方法會(huì)隨機(jī)選擇一組屬性,而 values 方法則生成隨機(jī)的數(shù)據(jù)值。
熟悉標(biāo)題配置選項(xiàng)
在之前的關(guān)卡中我們已經(jīng)熟悉了 PyEcharts 繪圖的流程,故本關(guān)主要介紹標(biāo)題相關(guān)的配置選項(xiàng):
class TitleOpts( # 主標(biāo)題文本,支持使用 \n 換行。 title: Optional[str] = None, # 主標(biāo)題跳轉(zhuǎn) URL 鏈接 title_link: Optional[str] = None, # 主標(biāo)題跳轉(zhuǎn)鏈接方式 # 默認(rèn)值是: blank # 可選參數(shù): 'self', 'blank' # 'self' 當(dāng)前窗口打開; 'blank' 新窗口打開 title_target: Optional[str] = None, # 副標(biāo)題文本,支持使用 \n 換行。 subtitle: Optional[str] = None, # 副標(biāo)題跳轉(zhuǎn) URL 鏈接 subtitle_link: Optional[str] = None, # 副標(biāo)題跳轉(zhuǎn)鏈接方式 # 默認(rèn)值是: blank # 可選參數(shù): 'self', 'blank' # 'self' 當(dāng)前窗口打開; 'blank' 新窗口打開 subtitle_target: Optional[str] = None, # title 組件離容器左側(cè)的距離。 # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對(duì)于容器高寬的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值為'left', 'center', 'right',組件會(huì)根據(jù)相應(yīng)的位置自動(dòng)對(duì)齊。 pos_left: Optional[str] = None, # title 組件離容器右側(cè)的距離。 # right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對(duì)于容器高寬的百分比。 pos_right: Optional[str] = None, # title 組件離容器上側(cè)的距離。 # top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對(duì)于容器高寬的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值為'top', 'middle', 'bottom',組件會(huì)根據(jù)相應(yīng)的位置自動(dòng)對(duì)齊。 pos_top: Optional[str] = None, # title 組件離容器下側(cè)的距離。 # bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對(duì)于容器高寬的百分比。 pos_bottom: Optional[str] = None, # 標(biāo)題內(nèi)邊距,單位px,默認(rèn)各方向內(nèi)邊距為5,接受數(shù)組分別設(shè)定上右下左邊距。 # // 設(shè)置內(nèi)邊距為 5 # padding: 5 # // 設(shè)置上下的內(nèi)邊距為 5,左右的內(nèi)邊距為 10 # padding: [5, 10] # // 分別設(shè)置四個(gè)方向的內(nèi)邊距 # padding: [ # 5, // 上 # 10, // 右 # 5, // 下 # 10, // 左 # ] padding: Union[Sequence, Numeric] = 5, # 主副標(biāo)題之間的間距。 item_gap: Numeric = 10, # 主標(biāo)題字體樣式配置項(xiàng),參考 `series_options.TextStyleOpts` title_textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 副標(biāo)題字體樣式配置項(xiàng),參考 `series_options.TextStyleOpts` subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None, )
如上所示,標(biāo)題主要分為主標(biāo)題和副標(biāo)題兩個(gè)模塊,其配置方法相類似。比較常用的有設(shè)置文本、設(shè)置超鏈接、設(shè)置位置等選項(xiàng)。上述字體樣式配置與其他部分字體樣式配置相似,我們將在后續(xù)實(shí)訓(xùn)中詳細(xì)介紹。
標(biāo)題配置屬于全局配置項(xiàng),可通過 set_global_opts 方法設(shè)置。
編程要求
根據(jù)以上介紹,在右側(cè)編輯器補(bǔ)充代碼,繪制給定數(shù)據(jù)的漏斗圖,要求:
- 系列名稱設(shè)置為“商品”;
- 將給定數(shù)據(jù)傳入漏斗圖;
- 將漏斗圖標(biāo)題設(shè)置為“Funnel-基本示例”;
- 為漏斗圖添加副標(biāo)題,命名為“Funnel-副標(biāo)題”。
測(cè)試說明
平臺(tái)會(huì)運(yùn)行你編寫的代碼進(jìn)行繪圖,并與預(yù)期圖片進(jìn)行比對(duì)。預(yù)期效果如下:
提示:
設(shè)置系列名稱以及添加數(shù)據(jù)部分可以簡(jiǎn)寫為:
...
.add("名稱", data)
...
開始你的任務(wù)吧,祝你成功!
代碼
from PreTest import * from pyecharts import options as opts from pyecharts.render import make_snapshot from snapshot_phantomjs import snapshot from pyecharts.charts import Funnel from pyecharts.faker import Faker data = [ list(z) for z in zip(Faker.choose(), Faker.values()) ] def funnel_chart() -> Funnel: # ********* Begin *********# funnel = ( Funnel() .add("商品", data) .set_global_opts(title_opts=opts.TitleOpts(title="Funnel-基本示例",subtitle="Funnel-副標(biāo)題")) ) # ********** End **********# return funnel make_snapshot(snapshot, funnel_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 輸出圖片 make_snapshot(snapshot, funnel_base(data).render(), "StandardAnswer/task1/standard_answer_1.png")
以上就是詳解Python+Pyecharts實(shí)現(xiàn)漏斗圖的繪制的詳細(xì)內(nèi)容,更多關(guān)于Python Pyecharts漏斗圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python增強(qiáng)下git那長(zhǎng)長(zhǎng)的指令詳解
這篇文章主要介紹了Python增強(qiáng)下git那長(zhǎng)長(zhǎng)的指令 ,在開發(fā)中用到的代碼目錄結(jié)構(gòu),本文也給大家詳細(xì)講解,需要的朋友可以參考下2021-09-09利用matplotlib實(shí)現(xiàn)兩張子圖分別畫函數(shù)圖
這篇文章主要介紹了利用matplotlib實(shí)現(xiàn)兩張子圖分別畫函數(shù)圖問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python實(shí)現(xiàn)網(wǎng)站文件的全備份和差異備份
這篇文章主要介紹了Python實(shí)現(xiàn)網(wǎng)站文件的全備份和差異備份,需要的朋友可以參考下2014-11-11Python中的對(duì)象,方法,類,實(shí)例,函數(shù)用法分析
這篇文章主要介紹了Python中的對(duì)象,方法,類,實(shí)例,函數(shù)用法,從面向?qū)ο蟮慕嵌确治隽藢?duì)象,方法,類,實(shí)例,函數(shù)等的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01