天天看點

如何把pyecharts的炫酷延續到PPT裡?

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

導讀:這幾天被一個奇怪的需求困住:pyecharts作圖既炫酷,又互動。但是,這個炫酷的效果往往隻存在于分析師自己的編輯器中,充其量也就是生成一個html檔案來嗨一嗨,有沒有什麼辦法能夠嵌入PPT呢?

如何把pyecharts的炫酷延續到PPT裡?

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

截圖放進去?

沒有互動功能的pyecharts,是沒有靈魂的!

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

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

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

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

  • 已知,pyecharts繪制的圖形可以儲存為html格式,通過網頁打開,也能檢視html源代碼
  • 又已知,有一款ppt插件,可以編輯html文本代碼,最終生成對應的可視化效果

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

答:先用pyecharts畫圖生成html檔案,然後檢視源代碼,把相關的源代碼複制到那個PPT插件中,點選運作即可。

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

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

01 pyecharts生成html檔案并擷取源碼

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

from pyecharts import options as opts
from pyecharts.charts import PictorialBar
from pyecharts.globals import SymbolType

location = ["山西", "四川", "西藏", "北京", "上海", "内蒙古", "雲南", "黑龍江", "廣東", "福建"]
values = [13, 42, 67, 81, 86, 94, 166, 220, 249, 262]

c = (
    PictorialBar()
    .add_xaxis(location)
    .add_yaxis(
        "",
        values,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat="fixed",
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol=SymbolType.ROUND_RECT,
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(title="PictorialBar-各省份人口數量(虛假資料)"),
        xaxis_opts=opts.AxisOpts(is_show=False),
        yaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_show=False),
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(opacity=0)
            ),
        ),
    )
    .render("pictorialbar_base.html")
)           

接着,打開生成的html檔案:

如何把pyecharts的炫酷延續到PPT裡?

右鍵或者Ctrl+U檢視源碼:

如何把pyecharts的炫酷延續到PPT裡?

02 在PPT中加載插件

打開PPT,“插入”子產品找到“擷取附加元件”,老版本的是“應用商店”

如何把pyecharts的炫酷延續到PPT裡?

03 繪圖源代碼放入插件并運作

等加載好了之後,我們點選上面“HTML”子產品,複制代碼,然後點選右上角長得有點像播放鍵的按鈕:

如何把pyecharts的炫酷延續到PPT裡?
如何把pyecharts的炫酷延續到PPT裡?
如何把pyecharts的炫酷延續到PPT裡?

滑鼠放上去,會有預期的資料回報。

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

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

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

如何把pyecharts的炫酷延續到PPT裡?

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

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

  • 運作第一次時總是會報錯,忽略錯誤,再次運作即可。
  • 最終我們生成了互動圖,美中不足的是旁邊的柱子和齒輪沒找到隐藏的辦法,幸好不太顯眼,不影響大局。
  • 儲存PPT後,再次打開以及檔案發送給其他人打開,相關互動圖大機率需要重新加載(忽略報錯再次運作),是以,這種插入PPT的方法,- - 适合少而精的幾張效果圖,以達到既簡便,又豔驚四座的效果。
  • 因為我的貧窮,都是在Windows上運作,Mac沒有嘗試過,把檔案發送給Mac的旁友,總是顯示為圖檔而沒有互動功能,希望Mac同學也親測一下有沒有解決辦法
  • 歡迎大家補充和探究更好的方法...

最後,感恩小範圍測試給我回報和幫助的旁友們:

上善若水、Chad、Aries、左世駿、flower、鲲鵬、星晴、jacky、elina sea等等~

鞠躬,撒花~

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-05-05

本文作者:小z

本文來自:“

大資料DT 微信公衆号

”,了解相關資訊可以關注“

大資料DT