如何把pyecharts的炫酷延续到PPT里!?

简介: 本文介绍如何把pyecharts的炫酷延续到PPT里。

这几天,群里有些小伙伴被一个奇怪的需求困住:


“pyecharts作图既炫酷,又交互。但是,这个炫酷的效果往往只存在于分析师自己的编辑器中,充其量也就是生成一个html文件来嗨一嗨,有没有什么办法能够嵌入PPT呢?”


“为什么想要嵌入PPT呢?”我有点疑惑。


“对于分析师来说,PPT才是和业务沟通的主战场,当然了,更是装X的主战场。有时候,一张炫酷的图,能让会议室所有的人喊一声牛X!”


“有啊!截图放进去呗~”机智如我。


“没有交互功能的pyecharts,是没有灵魂的!”


.....


于是我搜罗了一圈,结果发现,关于如何实现这个需求的内容,要么语焉不详,要么极其麻烦,要么已经过时完全不兼容。


最后,我找到了一个目前相对简便的方法,分享给大家。


这句话有强烈的潜台词:此乃抛砖引玉,旁友们,苟有方法,勿相忘!


这个方法的逻辑其实非常简单,可以说是一道小学应用题:


  • 已知,pyecharts绘制的图形可以保存为html格式,通过网页打开,也能查看html源代码
  • 又已知,有一款ppt插件,可以编辑html文本代码,最终生成对应的可视化效果


求:如何让pyecharts图在ppt中出现?


答:先用pyecharts画图生成html文件,然后查看源代码,把相关的源代码复制到那个PPT插件中,点击运行即可。


我们来用个例子实践一下整个操作。


注:小编是Win10的系统,2016版Office


一、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文件:


49.png


右键或者Ctrl+U查看源码:


50.png


我们拿到了很长的可视化源码,不用纠结具体是怎么写的,只需要全部复制就好。


、在PPT中加载插件



打开PPT,“插入”模块找到“获取加载项”,老版本的是“应用商店”


51.png


然后在加载项搜索框输入“html”,添加第一个结果“Office Apps Fiddle for PowerPoint”:


53.png


网速不同,这个插件可能会加载一会,我们耐心等待片刻即可。


绘图源代码放入插件并运行



等加载好了之后,我们点击上面“HTML”模块,复制代码,然后点击右上角长得有点像播放键的按钮:


60.png


不出意外,会报一个很丑的错误:


61.png


不要慌,把它给×掉之后,点击右上角齿轮:


62.png


接着会自动退回到刚才运行前的界面


63.png


按上图指示,我们再次点击右上角长得像播放按钮的地方。


Duang!


最开始画的带交互功能的图形,终于跃然PPT之上:


64.png


鼠标放上去,会有预期的数据反馈。


我们可以调整它的大小和在PPT中出现的位置,以保持整体的排版美观度。


“我去!这么炫酷的PPT!”隔壁不懂数据的小A偷窥我的电脑屏幕,忍不住吃了一惊。


我又照猫画虎,按照同样的流程在PPT插入了一个桑基图:


65.png


虽然这是我目前找到相对最可用的一种实现方式,但是整个过程仍然历经艰难险阻,最后做一个雷区复习汇总:


  • 运行第一次时总是会报错,忽略错误,再次运行即可。
  • 最终我们生成了交互图,美中不足的是旁边的柱子和齿轮没找到隐藏的办法,幸好不太显眼,不影响大局。
  • 保存PPT后,再次打开以及文件发送给其他人打开,相关交互图大概率需要重新加载(忽略报错再次运行),所以,这种插入PPT的方法,适合少而精的几张效果图,以达到既简便,又艳惊四座的效果。
  • 因为我的贫穷,都是在Windows上运行,Mac没有尝试过,把文件发送给Mac的旁友,总是显示为图片而没有交互功能,希望Mac同学也亲测一下有没有解决办法
  • 欢迎大家补充和探究更好的方法...


相关文章
|
存储 缓存 Android开发
安卓Jetpack Compose+Kotlin, 使用ExoPlayer播放多个【远程url】音频,搭配Okhttp库进行下载和缓存,播放完随机播放下一首
这是一个Kotlin项目,使用Jetpack Compose和ExoPlayer框架开发Android应用,功能是播放远程URL音频列表。应用会检查本地缓存,如果文件存在且大小与远程文件一致则使用缓存,否则下载文件并播放。播放完成后或遇到异常,会随机播放下一首音频,并在播放前随机设置播放速度(0.9到1.2倍速)。代码包括ViewModel,负责音频管理和播放逻辑,以及UI层,包含播放和停止按钮。
|
Oracle Java 关系型数据库
Oracle jdk 的国内下载镜像
Oracle jdk 的国内下载镜像
52456 0
|
8月前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
9月前
|
SQL 监控 关系型数据库
MySQL如何优雅的执行DDL
在MySQL中优雅地执行DDL操作需要综合考虑性能、锁定和数据一致性等因素。通过使用在线DDL工具、分批次执行、备份和监控等最佳实践,可以在保障系统稳定性的同时,顺利完成DDL操作。本文提供的实践和案例分析为安全高效地执行DDL操作提供了详细指导。
403 14
|
机器学习/深度学习 自然语言处理 搜索推荐
探索文本向量化的新高峰:合合信息acge_text_embedding 模型原创
文本向量化方法包括词袋模型、TF-IDF、词嵌入和预训练模型(如BERT、GPT)。词嵌入如Word2Vec、GloVe和FastText捕捉单词语义,预训练模型则保留上下文信息。C-MTEB是中文文本嵌入评估平台,测试模型在检索、相似性、分类等任务的性能。合合信息的acge_text_embedding模型在C-MTEB中表现优秀,适用于情感分析、文本生成等任务,具有高分类聚类准确性、资源效率和场景适应性。技术突破涉及数据集优化、模型训练策略和持续学习,提供Demo展示如何使用acge模型计算句子相似度。acge_text_embedding是提升文本处理效率和智能化的有力工具。
1315 2
探索文本向量化的新高峰:合合信息acge_text_embedding 模型原创
|
11月前
|
自然语言处理 前端开发 搜索推荐
前端界的黑科技:掌握这些技术,让你的网站秒变智能助手!
【10月更文挑战第30天】随着前端技术的发展,网站正逐渐变成智能助手。本文探讨了四大关键技术:自然语言处理(NLP)使网站理解用户输入;机器学习实现个性化推荐;Web Notifications API发送重要提醒;Web Speech API实现语音交互。通过这些技术,网站不仅能更好地理解用户,还能提供更智能、个性化的服务,提升用户体验。
201 3
|
网络安全 数据安全/隐私保护 Docker
Pycharm 远程解释器的配置
Pycharm 远程解释器的配置
|
监控 BI 数据安全/隐私保护
ERP系统中的成本核算与管理会计解析
【7月更文挑战第25天】 ERP系统中的成本核算与管理会计解析
961 4
|
编解码 前端开发 Java
SpringBoot集成ffmpeg实现视频转码播放
之前构建过文件预览服务,对于视频部分前端播放组件限制只能为mp4格式,为了支持更多视频格式决定对方案进行升级,由于视频格式较多,针对每一种格式定制选择播放器不太现实,决定对视频源统一转码,转码后的格式为mp4,兼容性稳定且前后端改造工作较小
845 0
|
数据可视化 JavaScript 前端开发
Python 绘制精美可视化数据分析图表 (二)-pyecharts
画图表就是为了把复杂的事情表达清楚,画图表还可以弥补单用文字表达的缺欠,对有些事物解说更直接、更具体。就像我们平时会议所用的 PPT,能够更直观呈现讲述者所想表达的意思,且通俗易懂。总的来说,使用图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解。 图表能跟直观表达和揭示数据的规律,人对图像更加敏感,对图文并茂的事物更容易接受,阅读更加简单高效,而且图表更显专业性,更具有说服力,更有利于沟通。 在上一篇文章《Python 绘制精美可视化数据分析图表 (一)-Matplotlib》中我们已经讲述过数据分析和绘制数据分析图表的好处,这里就不再赘述。直奔主题:pyecharts 是什么?
874 0