詳解Python+Pyecharts實(shí)現(xiàn)漏斗圖的繪制
任務(wù)描述
本關(guān)任務(wù):利用 PyEcharts 繪制一個基本的漏斗圖。
相關(guān)知識
為了完成本關(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)造一個二維 List:
data = [ list(z) for z in zip(Faker.choose(), Faker.values()) ]
其中,F(xiàn)aker包中的 choose 方法會隨機(jī)選擇一組屬性,而 values 方法則生成隨機(jī)的數(shù)據(jù)值。
熟悉標(biāo)題配置選項
在之前的關(guān)卡中我們已經(jīng)熟悉了 PyEcharts 繪圖的流程,故本關(guān)主要介紹標(biāo)題相關(guān)的配置選項:
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%' 這樣相對于容器高寬的百分比, # 也可以是 '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, # 標(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è)置四個方向的內(nèi)邊距 # padding: [ # 5, // 上 # 10, // 右 # 5, // 下 # 10, // 左 # ] padding: Union[Sequence, Numeric] = 5, # 主副標(biāo)題之間的間距。 item_gap: Numeric = 10, # 主標(biāo)題字體樣式配置項,參考 `series_options.TextStyleOpts` title_textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 副標(biāo)題字體樣式配置項,參考 `series_options.TextStyleOpts` subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None, )
如上所示,標(biāo)題主要分為主標(biāo)題和副標(biāo)題兩個模塊,其配置方法相類似。比較常用的有設(shè)置文本、設(shè)置超鏈接、設(shè)置位置等選項。上述字體樣式配置與其他部分字體樣式配置相似,我們將在后續(xù)實(shí)訓(xùn)中詳細(xì)介紹。
標(biāo)題配置屬于全局配置項,可通過 set_global_opts 方法設(shè)置。
編程要求
根據(jù)以上介紹,在右側(cè)編輯器補(bǔ)充代碼,繪制給定數(shù)據(jù)的漏斗圖,要求:
- 系列名稱設(shè)置為“商品”;
- 將給定數(shù)據(jù)傳入漏斗圖;
- 將漏斗圖標(biāo)題設(shè)置為“Funnel-基本示例”;
- 為漏斗圖添加副標(biāo)題,命名為“Funnel-副標(biāo)題”。
測試說明
平臺會運(yùn)行你編寫的代碼進(jìn)行繪圖,并與預(yù)期圖片進(jìn)行比對。預(yù)期效果如下:

提示:
設(shè)置系列名稱以及添加數(shù)據(jù)部分可以簡寫為:
...
.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漏斗圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python GUI自動化實(shí)現(xiàn)繞過驗(yàn)證碼登錄
這篇文章主要介紹了python GUI自動化實(shí)現(xiàn)繞過驗(yàn)證碼登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
python類型強(qiáng)制轉(zhuǎn)換long to int的代碼
python的int型最大值和系統(tǒng)有關(guān),32位和64位系統(tǒng)結(jié)果是不同的,分別為2的31次方減1和2的63次方減1,可以通過sys.maxint查看此值2013-02-02
python實(shí)現(xiàn)由數(shù)組生成對稱矩陣
本文給大家分享的是由數(shù)組生成對稱矩陣的思路并附上了使用Python實(shí)現(xiàn)的代碼,希望大家能夠喜歡2021-05-05
Xadmin+rules實(shí)現(xiàn)多選行權(quán)限方式(級聯(lián)效果)
這篇文章主要介紹了Xadmin+rules實(shí)現(xiàn)多選行權(quán)限方式(級聯(lián)效果),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python找出因數(shù)與質(zhì)因數(shù)的方法
這篇文章主要介紹了python找出因數(shù)與質(zhì)因數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

