****本文首发在丁香园*****
近来看到业内大佬提到了一个Rpackage:eoffice,据说可以直接将图片和结果导入到word、PPT,听起来很有意思的样子。对于图片,导出到PPT后还可以自主修改(颜色、文字等),感觉很优秀。今天笔者也来体验一下,并分享给大家。
用一个分面堆积柱状图作为例子。之前绘制这个图时,一致找不到修改填充色的方法,把笔者急得挠头啊。看到eoffice的介绍后,感觉世界瞬间明亮了。经过笔者的一通操作,请看图1。图1是使用topptx()导出到PPT的原图,颜色是现在这个样子的。

通常R导出的图片是不可以随意修改的,但是今天不同。如何不同,先修改一下填充色看看。双击你要修改的部分,选择自己想要的填充色就完事了,随心所欲啊。下面看一下,改过填充色的图片。

这里还要说一下另外一个Rpackage:ggthemes,也是和ggplot2配合使用的package,可以提供多种图片主题。图1和图2用的是wsj风格(theme_wsj),下面换一个风格看看(笔者之前喜欢用stata,那就换一个stata风格的吧)。将theme_wsj换为theme_stata即可实现,请看图3。看了图3,大家会发现和图1、图2相比,笔者又做了两处修改(红圈部分),这就是修改文字了,随心所欲。

以上说的是导出到PPT,大家也可以导出为pdf、png等格式,但是就没有导出到PPT那么好修改了。eoffice的功能不只是导出,还可以导入,这里就不多说了,留给大家去学习探究吧。最后,附上几句不规范的代码。
## 加载程序包
library(openxlsx)
library(ggplot2)
library(ggthemes)#这个包也不错哦
library(eoffice)
##设置路径
setwd("C:/Users/Administrator/Desktop/eoffice")
## 载入数据
dat<-read.xlsx("data.xlsx",sheet = 1)
## 绘制分面堆积柱状图并导出
#绘制分面堆积柱状图
P1<-ggplot(dat,aes(x=Gender,y=count,fill=Type))+geom_bar(stat="identity")+
facet_grid(. ~ Age,labeller = label_both)+
scale_x_discrete(limits=c("Male","Female"))+
scale_fill_discrete(name=" Clinical type",labels=c("Common", "Severe", "Critical"))+
theme_wsj()
# 导出到ppt
topptx(p1, filename ="Practice_Barplot_wsj.pptx", width = 7, height = 5)
#换个主题(stata风格)
p2<-ggplot(dat,aes(x=Gender,y=count,fill=Type))+geom_bar(stat="identity")+
facet_grid(.~ Age,labeller = label_both)+
scale_x_discrete(limits=c("Male","Female"))+
scale_fill_discrete(name="Clinicaltype",labels=c("Common", "Severe","Critical"))+
theme_stata()
#导出到ppt(stata风格)
topptx(p2, filename ="Practice_Barplot_stata.pptx", width = 7, height = 5)
#导出为图片(pdf格式)
tofigure(p2, filename ="Practice_Barplot_stata.pdf")
近来看到业内大佬提到了一个Rpackage:eoffice,据说可以直接将图片和结果导入到word、PPT,听起来很有意思的样子。对于图片,导出到PPT后还可以自主修改(颜色、文字等),感觉很优秀。今天笔者也来体验一下,并分享给大家。
用一个分面堆积柱状图作为例子。之前绘制这个图时,一致找不到修改填充色的方法,把笔者急得挠头啊。看到eoffice的介绍后,感觉世界瞬间明亮了。经过笔者的一通操作,请看图1。图1是使用topptx()导出到PPT的原图,颜色是现在这个样子的。

通常R导出的图片是不可以随意修改的,但是今天不同。如何不同,先修改一下填充色看看。双击你要修改的部分,选择自己想要的填充色就完事了,随心所欲啊。下面看一下,改过填充色的图片。

这里还要说一下另外一个Rpackage:ggthemes,也是和ggplot2配合使用的package,可以提供多种图片主题。图1和图2用的是wsj风格(theme_wsj),下面换一个风格看看(笔者之前喜欢用stata,那就换一个stata风格的吧)。将theme_wsj换为theme_stata即可实现,请看图3。看了图3,大家会发现和图1、图2相比,笔者又做了两处修改(红圈部分),这就是修改文字了,随心所欲。

以上说的是导出到PPT,大家也可以导出为pdf、png等格式,但是就没有导出到PPT那么好修改了。eoffice的功能不只是导出,还可以导入,这里就不多说了,留给大家去学习探究吧。最后,附上几句不规范的代码。
## 加载程序包
library(openxlsx)
library(ggplot2)
library(ggthemes)#这个包也不错哦
library(eoffice)
##设置路径
setwd("C:/Users/Administrator/Desktop/eoffice")
## 载入数据
dat<-read.xlsx("data.xlsx",sheet = 1)
## 绘制分面堆积柱状图并导出
#绘制分面堆积柱状图
P1<-ggplot(dat,aes(x=Gender,y=count,fill=Type))+geom_bar(stat="identity")+
facet_grid(. ~ Age,labeller = label_both)+
scale_x_discrete(limits=c("Male","Female"))+
scale_fill_discrete(name=" Clinical type",labels=c("Common", "Severe", "Critical"))+
theme_wsj()
# 导出到ppt
topptx(p1, filename ="Practice_Barplot_wsj.pptx", width = 7, height = 5)
#换个主题(stata风格)
p2<-ggplot(dat,aes(x=Gender,y=count,fill=Type))+geom_bar(stat="identity")+
facet_grid(.~ Age,labeller = label_both)+
scale_x_discrete(limits=c("Male","Female"))+
scale_fill_discrete(name="Clinicaltype",labels=c("Common", "Severe","Critical"))+
theme_stata()
#导出到ppt(stata风格)
topptx(p2, filename ="Practice_Barplot_stata.pptx", width = 7, height = 5)
#导出为图片(pdf格式)
tofigure(p2, filename ="Practice_Barplot_stata.pdf")