詳解Python+Pyecharts實現漏鬥圖的繪制
任務描述
本關任務:利用 PyEcharts 繪制一個基本的漏鬥圖。
相關知識
為瞭完成本關任務,你需要掌握:
1. Python 的基本語法
2. PyEcharts 漏鬥圖的相關內容
導入圖表類型
與日歷圖的操作類似,在文件的開始我們首先要將所需包導入,如右側編輯器中代碼所示。
導入漏鬥圖的語句為
from pyecharts.charts import Funnel
為瞭方便構造數據,我們還導入瞭 PyEcharts 提供的虛擬數據包,如下所示:
from pyecharts.faker import Faker
構造數據
通過 PyEcharts 提供的虛擬數據包 Faker,我們可以用如下語句構造一個二維 List:
data = [ list(z) for z in zip(Faker.choose(), Faker.values()) ]
其中,Faker包中的 choose 方法會隨機選擇一組屬性,而 values 方法則生成隨機的數據值。
熟悉標題配置選項
在之前的關卡中我們已經熟悉瞭 PyEcharts 繪圖的流程,故本關主要介紹標題相關的配置選項:
class TitleOpts( # 主標題文本,支持使用 \n 換行。 title: Optional[str] = None, # 主標題跳轉 URL 鏈接 title_link: Optional[str] = None, # 主標題跳轉鏈接方式 # 默認值是: blank # 可選參數: 'self', 'blank' # 'self' 當前窗口打開; 'blank' 新窗口打開 title_target: Optional[str] = None, # 副標題文本,支持使用 \n 換行。 subtitle: Optional[str] = None, # 副標題跳轉 URL 鏈接 subtitle_link: Optional[str] = None, # 副標題跳轉鏈接方式 # 默認值是: blank # 可選參數: 'self', 'blank' # 'self' 當前窗口打開; 'blank' 新窗口打開 subtitle_target: Optional[str] = None, # title 組件離容器左側的距離。 # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對於容器高寬的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值為'left', 'center', 'right',組件會根據相應的位置自動對齊。 pos_left: Optional[str] = None, # title 組件離容器右側的距離。 # right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對於容器高寬的百分比。 pos_right: Optional[str] = None, # title 組件離容器上側的距離。 # top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對於容器高寬的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值為'top', 'middle', 'bottom',組件會根據相應的位置自動對齊。 pos_top: Optional[str] = None, # title 組件離容器下側的距離。 # bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對於容器高寬的百分比。 pos_bottom: Optional[str] = None, # 標題內邊距,單位px,默認各方向內邊距為5,接受數組分別設定上右下左邊距。 # // 設置內邊距為 5 # padding: 5 # // 設置上下的內邊距為 5,左右的內邊距為 10 # padding: [5, 10] # // 分別設置四個方向的內邊距 # 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 方法設置。
編程要求
根據以上介紹,在右側編輯器補充代碼,繪制給定數據的漏鬥圖,要求:
- 系列名稱設置為“商品”;
- 將給定數據傳入漏鬥圖;
- 將漏鬥圖標題設置為“Funnel-基本示例”;
- 為漏鬥圖添加副標題,命名為“Funnel-副標題”。
測試說明
平臺會運行你編寫的代碼進行繪圖,並與預期圖片進行比對。預期效果如下:
提示:
設置系列名稱以及添加數據部分可以簡寫為:
…
.add("名稱", data)
…
開始你的任務吧,祝你成功!
代碼
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-副標題")) ) # ********** 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實現漏鬥圖的繪制的詳細內容,更多關於Python Pyecharts漏鬥圖的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Pyecharts可視化圖片渲染的方法詳解
- Python可視化神器pyecharts繪制餅狀圖
- Python+Pyecharts實現散點圖的繪制
- Python繪制散點圖之可視化神器pyecharts
- Python pyecharts Line折線圖的具體實現