目錄
- 一、問題背景
- 二、揭開json檔案神秘面紗
- 三、巧用json檔案
- 四、關于Table圖表
- 五、同步講解視頻
- 5.1 講解json的視頻
- 5.2 講解全流程大屏的視頻
- 5.3 講解全流程大屏的文章
一、問題背景
前情提要(第5.8章節):
【Python可視化大屏】全流程揭秘實作可視化資料大屏的背后原理!
在用Page函式拖拽組合完大屏時,點擊頁面左上角的Save Config,會生成一個檔案:chart_config.json
這個檔案是什么?有什么作用?怎么高效利用它?
二、揭開json檔案神秘面紗
打開json檔案后,如下:

json是一個由dict組成的串列,每個dict的key分別是:
- cid:chart_id,圖表的唯一標識
- width:圖表的寬度
- height:圖表的高度
- top:距離頂部的大小,多少px像素
- left:距離左側的大小,多少px像素
也就是說,json檔案以chart_id為標識,記錄了每個圖表的所在大屏的屬性(大小、位置等)
有了這個json組態檔,下一步生成最終大屏html檔案的時候,pyecharts就知道每個圖表擺放在什么位置,大小是多少了:
Page.save_resize_html(
source="大屏_臨時.html",
cfg_file="chart_config.json",
dest="大屏_最終.html"
)
是不是很好理解了,
三、巧用json檔案
既然我們理解了json檔案的內容和作用,什么時候需要用到它呢?
如果你跑完資料,拖拽組合大屏完成,生成了json檔案和最終大屏,發現效果圖表有問題,資料不對,但是大屏的圖表沒問題,都很美觀,此時,只需要重新跑一遍資料,不需要重新組合拖拽大屏,就可以巧妙利用這個json檔案,
所以,關鍵點來了(敲黑板!期末要考!!)
在開發各個子圖表時,一定要在每個圖表的初始化配置項opts.InitOpts里面,設定上chart_id,就像這樣:
詞云圖:
WordCloud(init_opts=opts.InitOpts(, height="350px", theme=theme_config, chart_id='wc1'))
漣漪散點圖:
EffectScatter(init_opts=opts.InitOpts(, height="350px", theme=theme_config, chart_id='scatter1'))
柱形圖:
Bar(init_opts=opts.InitOpts(theme=theme_config, , height="350px", chart_id='bar_cmt1'))
每個圖表都設定了chart_id(重點!)
不然保存json檔案時,pyecharts會給圖表生成隨機的chart_id,后面巧用json檔案時就會很麻煩,需要手動替換chart_id了!
當把最新的資料重新跑完,生成好大屏_臨時.html后,直接執行3_生成最終大屏.py就行,
不需要重新拖拽了!
不需要重新拖拽了!
不需要重新拖拽了!
重要的事情說三遍,
非常快速高效的生成最終大屏!(因為chart_config.json里面已經記錄了上次拖拽的結果)
非常優雅對不對?
好了,關于chart_config.json的剖析就到這里!
四、關于Table圖表
關于pyecharts里的Table組件,這里需要特殊說明,
由于Table不是Echarts框架的標準圖表型別,屬于HTML的原生表格,所以它不支持設定chart_id,(關于此事,我特意咨詢了pyecharts框架的原作者 ,在此感謝大佬解答!)
所以,只能從臨時大屏的html檔案里,找出table的chart_id,把它粘貼到json檔案中,才可以繼續巧用josn檔案,
五、同步講解視頻
5.1 講解json的視頻
https://www.zhihu.com/zvideo/1509818909490876416
5.2 講解全流程大屏的視頻
https://www.zhihu.com/zvideo/1503013679826690048
5.3 講解全流程大屏的文章
https://zhuanlan.zhihu.com/p/505408710
by: 馬哥python說
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/477686.html
標籤:Python
