如何讓 PPT 像 PyeCharts 一樣炫酷?

作者 | 周志鵬

這幾天,群裡有些小夥伴被一個奇怪的需求困住:

“pyecharts作圖既炫酷,又交互。但是,這個炫酷的效果往往只存在於分析師自己的編輯器中,充其量也就是生成一個html文件來嗨一嗨,有沒有什麼辦法能夠嵌入PPT呢?”

“為什麼想要嵌入PPT呢?”我有點疑惑。

“對於分析師來說,PPT才是和業務溝通的主戰場,當然了,更是裝X的主戰場。有時候,一張炫酷的圖,能讓會議室所有的人喊一聲牛X!”

“有啊!截圖放進去唄~”機智如我。

“沒有交互功能的pyecharts,是沒有靈魂的!”

.....

於是我搜羅了一圈,結果發現,關於如何實現這個需求的內容,要麼語焉不詳,要麼極其麻煩,要麼已經過時完全不兼容。

最後,我找到了一個目前相對簡便的方法,分享給大家。

這句話有強烈的潛臺詞:此乃拋磚引玉,旁友們,苟有方法,勿相忘!

這個方法的邏輯其實非常簡單,可以說是一道小學應用題:

已知,pyecharts繪製的圖形可以保存為html格式,通過網頁打開,也能查看html源代碼

又已知,有一款ppt插件,可以編輯html文本代碼,最終生成對應的可視化效果

求:如何讓pyecharts圖在ppt中出現?

答:先用pyecharts畫圖生成html文件,然後查看源代碼,把相關的源代碼複製到那個PPT插件中,點擊運行即可。

我們來用個例子實踐一下整個操作。

注:筆者是Win10的系統,2016版Office。

如何让 PPT 像 PyeCharts 一样炫酷?

Pyecharts生成html文件並獲取源碼

這裡pyecharts繪圖直接用的是官方文檔的示例代碼:

<code>from pyecharts import options as opts/<code><code>from pyecharts.charts import PictorialBar/<code><code>from pyecharts.globals import SymbolType/<code>
<code>location = ["山西", "四川", "西藏", "北京", "上海", "內蒙古", "雲南", "黑龍江", "廣東", "福建"]/<code><code>values = [13, 42, 67, 81, 86, 94, 166, 220, 249, 262]/<code>
<code>c = (/<code><code> PictorialBar/<code><code> .add_xaxis(location)/<code><code> .add_yaxis(/<code><code> "",/<code><code> values,/<code><code> label_opts=opts.LabelOpts(is_show=False),/<code><code> symbol_size=18,/<code><code> symbol_repeat="fixed",/<code><code> symbol_offset=[0, 0],/<code><code> is_symbol_clip=True,/<code><code> symbol=SymbolType.ROUND_RECT,/<code><code> )/<code><code> .reversal_axis/<code><code> .set_global_opts(/<code><code> title_opts=opts.TitleOpts(title="PictorialBar-各省份人口數量(虛假數據)"),/<code><code> xaxis_opts=opts.AxisOpts(is_show=False),/<code><code> yaxis_opts=opts.AxisOpts(/<code><code> axistick_opts=opts.AxisTickOpts(is_show=False),/<code><code> axisline_opts=opts.AxisLineOpts(/<code><code> linestyle_opts=opts.LineStyleOpts(opacity=0)/<code><code> ),/<code><code> ),/<code><code> )/<code><code> .render("pictorialbar_base.html")/<code><code>)/<code>

接著,打開生成的html文件:

如何让 PPT 像 PyeCharts 一样炫酷?

右鍵或者Ctrl+U查看源碼:

如何让 PPT 像 PyeCharts 一样炫酷?

我們拿到了很長的可視化源碼,不用糾結具體是怎麼寫的,只需要全部複製就好。

如何让 PPT 像 PyeCharts 一样炫酷?

在PPT中加載插件

打開PPT,“插入”模塊找到“獲取加載項”,老版本的是“應用商店”。

如何让 PPT 像 PyeCharts 一样炫酷?

然後在加載項搜索框輸入“html”,添加第一個結果“Office Apps Fiddle for PowerPoint”:

如何让 PPT 像 PyeCharts 一样炫酷?

網速不同,這個插件可能會加載一會,我們耐心等待片刻即可。

如何让 PPT 像 PyeCharts 一样炫酷?

繪圖源代碼放入插件並運行

等加載好了之後,我們點擊上面“HTML”模塊,複製代碼,然後點擊右上角長得有點像播放鍵的按鈕:

如何让 PPT 像 PyeCharts 一样炫酷?

不出意外,會報一個很醜的錯誤:

如何让 PPT 像 PyeCharts 一样炫酷?

不要慌,把它給×掉之後,點擊右上角齒輪:

如何让 PPT 像 PyeCharts 一样炫酷?

接著會自動退回到剛才運行前的界面:

如何让 PPT 像 PyeCharts 一样炫酷?

按上圖指示,我們再次點擊右上角長得像播放按鈕的地方。

Duang!

最開始畫的帶交互功能的圖形,終於躍然PPT之上:

如何让 PPT 像 PyeCharts 一样炫酷?

鼠標放上去,會有預期的數據反饋。

我們可以調整它的大小和在PPT中出現的位置,以保持整體的排版美觀度。

“我去!這麼炫酷的PPT!”隔壁不懂數據的小A偷窺我的電腦屏幕,忍不住吃了一驚。

我又照貓畫虎,按照同樣的流程在PPT插入了一個桑基圖:

如何让 PPT 像 PyeCharts 一样炫酷?

“WOC!牛X!”

聽到連續悅耳的誇讚,我笑出了豬叫...

雖然這是我目前找到相對最可用的一種實現方式,但是整個過程仍然歷經艱難險阻,最後做一個雷區複習彙總:

運行第一次時總是會報錯,忽略錯誤,再次運行即可。

最終我們生成了交互圖,美中不足的是旁邊的柱子和齒輪沒找到隱藏的辦法,幸好不太顯眼,不影響大局。

保存PPT後,再次打開以及文件發送給其他人打開,相關交互圖大概率需要重新加載(忽略報錯再次運行),所以,這種插入PPT的方法,適合少而精的幾張效果圖,以達到既簡便,又豔驚四座的效果。

因為我的貧窮,都是在Windows上運行,Mac沒有嘗試過,把文件發送給Mac的旁友,總是顯示為圖片而沒有交互功能,希望Mac同學也親測一下有沒有解決辦法

歡迎大家補充和探究更好的方法......

如何让 PPT 像 PyeCharts 一样炫酷?

☞比特幣當贖金,WannaRen 勒索病毒二度來襲!

☞深度|一文讀懂“情感計算”在零售中的應用發展

☞三大運營商將上線5G消息;蘋果谷歌聯手,追蹤30億用戶;jQuery 3.5.0發佈|極客頭條

☞曾遭周鴻禕全網封殺的360猛將:草根打工到36歲身家上億的逆襲!

☞你公司的虛擬機還閒著?基於Jenkins和Kubernetes的持續集成測試實踐瞭解一下!

☞從Web1.0到Web3.0:詳析這些年互聯網的發展及未來方向

☞一文讀懂“情感計算”在零售中的應用發展


分享到:


相關文章: