如何用R来定制个性化PPT
ReporteRs包可以创建word,ppt,html文档。它可以格式化R的输出:如可编辑的矢量图,复杂的表格报告功能,企业模板文档的重用(.docx和.pptx)。它是一个很好的自动化报告工具,并且不需要你安装微软的任何产品。本文演示的是如何用它来制作PPT文档。
入门
创建一个pptx对象
通过pptx函数创建的一个R对象可以表示一个PPT文档。它包含两个参数:标题和模板文件。如果未指定,模板文件在包目录下是一个空文档。
每当创建一个pptx对象的时候,你就可以使用一个模板文件。这个文件是从内存中复制过来的,并且副本可以通过R输出为一个文档。模板文件提供了可用的格式和幻灯片板式。
将R的输出结果发送到一个对象
接下来,创建pptx文件的组成部分。
在将R的输出发送到一个文档(或幻灯片)之前,必须添加一个幻灯片。通过函数addSlide可以实现。
在添加幻灯片的时候,需要选定一个布局。然后添加文本,表格,图形和其它组成部分。
将对象写入到一个文件中
最后,使用函数writeDoc将对象写入到后缀为.pptx的文件中。
示例
下面我们通过一个带有注解的R脚本来做演示:
模板,版式和样式
pptx函数可以通过"pptx"模板文件创建一个文档。
如果没有提供,可以使用一个空文档(在包目录下的templates文件中可以找到)
ReporteRs使用PPT文件作为模板。这个模板是一个最原始的PPT文档,所有的幻灯片布局,外形(占位符)和样式来自于:
模板中可用的幻灯片版式模板中自定义好的设计,模板格式和外形(模板中的占位符)
ppt模板的内容不会被删除,以便在现有的演示文稿中添加内容,而不用再复制粘贴。
如果需要除了PPT内置的幻灯片母版版式,可以在你的PPT演示文稿中添加版式并做自定义。要添加自己的版式,只需在PPT中按如下操作即可:
1.切换到幻灯片母版视图
2.插入版式
3.插入你想要增加到新版式中的占位符。根据需要包含的内容移动并调整它们的大小。
4.可以对新的占位符做些设置(如:修改背景颜色,字体等)
5.保存并关闭模板
6.通过pptx函数中参数template所指定的模板文件名创建一个pptx对象。
添加内容
添加幻灯片
利用addSlide函数可以在pptx对象中添加一个幻灯片。可用的形状数根据所选的版式通过R输出来填充。例如,版式"Title and Content"只能接收一个R输出,"Two Content"可以接收两个R输出。
如果你需要一个新的版式,在PPT中创建它。
当添加一个R输出的时候,如果没有指定位置和大小,R输出会采用被定义的模板版式中的位置和尺寸。如果你不喜欢模板中的模型位置属性,可以强制改变大小和位置。
将R的输出结果发送到幻灯片
接下来,创建幻灯片的组成部分。
在幻灯片中添加文本,表格,图形和其它组成部分。可用的函数见如下函数列表。
如果现在的幻灯片没有剩余空间或者是你想添加其它内容,可以强制设定模型的大小和位置。具体可参考几个关键的函数和参数
函数列表
下面这些函数只能用于输出格式为pptx的文档:
添加标题:addTitle
添加表格:addFlexTable-见FlexTable和addFlexTable
添加图形:见addPlot
添加外部图像:见addImage
添加文本段落:addPagraph
添加语法高亮的R代码:见addRScript
添加幻灯片:addSlide(见"几个关键的函数和参数")
将pptx对象写入PPT文档:见writeDoc
添加日期:addDate(见下述"几个特殊函数")
添加脚注:addFooter(见下述"几个特殊函数")
添加页数:addPageNumber(见下述"几个特殊函数")
几个关键的函数的参数
addSlide函数
函数addSlide可以添加一个幻灯片到pptx对象。参数slide.layout指定新建幻灯片的版式设计。
slide.layouts函数
模板中包含了可用的版式。幻灯片的版式概念在ReporteRs中非常重要。
内容取决于所选择的版式。当添加的幻灯片版式为"Title and Content"时,幻灯片只包含两个部分:标题和内容。
外形(或占位符)的大部分格式都已经设置好了:图形的大小由版式中的外形尺寸指定好了,默认字体和段落样式也由外形的属性值指定。
slide.layouts返回幻灯片版式名称。用addSlide函数添加一个幻灯片的时候可能需要核对下有哪些版式可用。
检查幻灯片版式
通过slide.layouts函数的可选参数layout获取版式的设计图。
这里,幻灯片可用接收如下形状:标题,四个内容(图形,表格,段落),日期和幻灯片数。
设置大小和位置
宽度,高度和输出位置在PPT模板给定的时候就通过外形属性值设定好了。当我们在幻灯片中添加内容的时候,ReporteRs会在当前幻灯片中读取下一个可用外形的属性值。你可以指定一些特定输出(表格,文本,图形和外部图像)的外形位置和尺寸 如果没有设定offx,offy,width,heigh这些参数。位置的尺寸会通过幻灯片的下一个可用形状中的width和heigh默认设定好。 如果指定这些参数,可以得到新的外形位置和尺寸。这样做可以在幻灯片没有更多剩余的空间时添加新的内容。
以下R脚本可以生成
几个特殊函数
日期
利用addDate函数可以在幻灯片中增加日期。它的外形通过模板文档中的日期外形属性值设定。
页数
利用函数addPageNumber可以在幻灯片中添加幻灯片的页数。同样,它的外形通过模板文档中的页数外形属性值设定。
页脚
函数addFooter可以实现在幻灯片的页脚处添加注解。同样,通过模板文件默认设定。
副标题
函数addSubtitle实现在幻灯片中添加副标题。外形由模板默认设定。
副标题的外形只存在类型为"Title Slide"的幻灯片。
更换幻灯片
通过设定addSlide中的参数bookmark可以实现幻灯片的替换。
注:在本文中遇到的坑跟大家分享下。
1.前面已经提到创建一个模板有两种方法。方法一,mydoc = pptx()通过调用包目录下templates文件夹中的EMPTY_DOC.pptx作为模板。方法二,自己在当前工作目录下新建一个ppt文档作为模板。如:我在工作目录下新建了一个名为"PP_example.pptx"文档,通过mydoc = pptx( title = 'title', template = 'pp_example.pptx' )调用这个模板。这两种方法会有些区别:i)版式
采用方法一
采用方法二
所以,如果用的是方法二调用的模板,在做幻灯片替换的时候做下中文设置即可:mydoc = addSlide( mydoc, slide.layout = '标题和内容', bookmark = 3 )。但这里有一个问题就是无法插入图形,出现如下错误(如果有小伙伴解决了这个问题欢迎在下面评论中留言):
但文本,表格等可以插入。但通过方法一得到一个ppt文档,再把它作为模板后就可以插入图形了。
2.在做幻灯片替换的过程中,将pptx对象writeDoc()到ppt文档的时候ppt需先关闭。
3.用方法二作为模板的时候,需先在工作目录下新建一个ppt文档,否则提示文件不存在。
完整案例
下面的代码展示了可以用在pptx对象上的一些最有用的函数。
数据分析咨询请扫描二维码
在当今以数据为导向的商业环境中,数据分析师的角色变得越来越重要。无论是揭示消费者行为的趋势,还是优化企业运营的效率,数据 ...
2024-11-17金融数学是一门充满挑战和机遇的专业,它将数学、统计学和金融学的知识有机结合,旨在培养能够运用数学和统计方法解决复杂金融市 ...
2024-11-16在信息时代的浪潮中,大数据已成为推动创新的重要力量。无论是在商业、医疗、金融,还是在日常生活中,大数据扮演的角色都愈发举 ...
2024-11-16随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15在快速演变的数字时代,数据分析已成为多个行业的核心驱动力。无论你是刚刚踏入数据分析领域,还是寻求进一步发展的专业人士,理 ...
2024-11-15Python作为一种通用编程语言,以其简单易学、功能强大等特点,成为众多领域的核心技术驱动者。无论是初学者还是有经验的编程人员 ...
2024-11-15在当今数据驱动的世界中,数据分析已成为许多行业的基础。无论是商业决策,产品开发,还是市场策略优化,数据分析都扮演着至关重 ...
2024-11-15数据分析作为现代商业和研究领域不可或缺的一部分,吸引了越来越多的初学者。然而,自学数据分析的过程中,初学者常常会遇到许多 ...
2024-11-15在当今的数据驱动世界中,机器学习方法在数据挖掘与分析中扮演着核心角色。这些方法通过从数据中学习模式和规律来构建模型,实现 ...
2024-11-15随着数据在各个行业的重要性日益增加,数据分析师在商业和技术领域的角色变得至关重要。其核心职责之一便是通过数据可视化,将复 ...
2024-11-15数据分析师的职责不仅仅局限于解析数据和得出结论,更在于将这些复杂的信息转换为清晰、易懂且具有影响力的沟通。良好的沟通能力 ...
2024-11-15数字化转型是企业提升竞争力和实现可持续发展的关键路径。面对快速变化的市场环境,以及技术的飞速发展,企业在数字化转型过程中 ...
2024-11-15CDA数据分析师认证:CDA认证分为三个等级:Level Ⅰ、Level Ⅱ和Level Ⅲ,每个等级的报考条件如下: Le ...
2024-11-14自学数据分析可能是一条充满挑战却又令人兴奋的道路。随着数据在现代社会中的重要性日益增长,掌握数据分析技能不仅能提升你的就 ...
2024-11-14数据分析相关职业选择 数据分析领域正在蓬勃发展,为各种专业背景的人才提供了丰富的职业机会。从初学者到有经验的专家,每个人 ...
2024-11-14数据挖掘与分析在金融行业的使用 在当今快速发展的金融行业中,数据挖掘与分析的应用愈发重要,成为驱动行业变革和提升竞争力的 ...
2024-11-14学习数据挖掘需要掌握哪些技能 数据挖掘是一个不断发展的领域,它结合了统计学、计算机科学和领域专业知识,旨在从数据中提取有 ...
2024-11-14统计学作为一门基于数据的学科,其广泛的应用领域和多样的职业选择,使得毕业生拥有丰厚的就业前景。无论是在政府还是企业,统计 ...
2024-11-14在当今高速发展的技术环境下,企业正在面临前所未有的机遇和挑战。数字化转型已成为企业保持竞争力和应对市场变化的必由之路。要 ...
2024-11-13