R包export可以轻松的将R绘制的图和统计表输出到 Microsoft Office (Word、PowerPoint和Excel)、HTML和Latex中,其质量可以直接用于揭橥。
你和PPT高手之间,就只差一个iSlideExcel改变了你的基因名,30% 干系Nature文章受影响,NCBI也受波及特点可以用命令将交互式R图或ggplot2、Lattice或base R图保存到Microsoft Word、Powerpoint或其他各种位图或矢量格式。完备可编辑的Powerpoint矢量格式输出,支持手动整理绘图布局。将统计剖析的输出保存为Excel、Word、PowerPoint、Latex或HTML文档的表格形式。自定义R输出格式。安装export包可以在Windows、Ubuntu和Mac上跨平台运行。不过有些Mac发行版默认情形下没有安装cairo设备,须要自行安装。如果Mac用户已安装XQuartz,这个问题就办理了,它可以从https://www.xquartz.org/免费得到。
官方CRAN发布 (以不能用)
install.packages(34;export")
从 Github 安装 (推举install.packages("officer")install.packages("rvg")install.packages("openxlsx")install.packages("ggplot2")install.packages("flextable")install.packages("xtable")install.packages("rgl")install.packages("stargazer")install.packages("tikzDevice")install.packages("xml2")install.packages("broom")install.packages("devtools")devtools::install_github("tomwenseleers/export")
该包紧张包括以下几种转换
graph2bitmapgraph2officegraph2vectorrgl2bitmap 转换3D图table2officetable2spreadsheettable2texgraph2bitmap: 将当前R图保存到bmp文件中graph2png: 将当前R图保存到png文件中graph2tif: 将当前R图保存到TIF文件中graph2jpg: 将当前R图保存为JPEG文件利用帮助信息如下:
graph2bitmap(x = NULL, file = "Rplot", fun = NULL, type = c("PNG","JPG", "TIF"), aspectr = NULL, width = NULL, height = NULL, dpi = 300,scaling = 100, font =ifelse(Sys.info()["sysname"] == "Windows", "Arial", "Helvetica")[[1]], bg = "white", cairo = TRUE, tiffcompression = c("lzw", "rle", "jpeg", "zip", "lzw+p", "zip+p"), jpegquality = 99, ...)
aspectr: 期望纵横比。如果设置为空,则利用图形设备的纵横比。width: 所需宽度(英寸);可以与期望的纵横比aspectr组合。height: 所需高度(英寸);可以与期望的纵横比aspectr组合。scaling: 按一定比例缩放宽度和高度。font: PNG和TIFF输出中标签所需的字体; Windows系统默认为Arial,其他系统默认为Helvetica。bg: 所需的背景颜色,例如“白色”或“透明”。cairo: 逻辑,指定是否利用Cairographics导出。tiffcompression: 用于TIF文件的压缩。jpegquality: JPEG压缩的质量。准备开始
安装完 export包后,先调用该包
library(export)
用ggplot2绘图
library(ggplot2)library(datasets)
x=qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
qplot()的意思是快速作图,利用它可以很方便的创建各种繁芜的图形,其他系统须要好几行代码才能办理的问题,用qplot只须要一行就能完成。
利用半透明的颜色可以有效减少图形元素重叠的征象,要创建半透明的颜色,可以利用alpha图形属性,其值从0(完备透明)到1(完备不透明)。更多ggplot2绘图见ggplot2高效实用指南 (可视化脚本、工具、套路、配色) (往期教程更有很多生物信息干系的例子)。
鸢尾花(iris)是数据挖掘常用到的一个数据集,包含150个鸢尾花的信息,每50个取自三个鸢尾花种之一(setosa,versicolour或virginica)。每个花的特色用下面的5种属性描述萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、花瓣长度(Petal.Length)、花瓣宽度(Petal.Width)、类(Species)。
在console里展示数据图 (长宽比自己调节):
导出图形工具
# 需运行上面的ggplot2绘图# Create a file name# 程序会自动加后缀filen <- "output_filename" # or# filen <- paste("YOUR_DIR/ggplot")# There are 3 ways to use graph2bitmap():### 1. Pass the plot as an objectgraph2png(x=x, file=filen, dpi=400, height = 5, aspectr=4)graph2tif(x=x, file=filen, dpi=400, height = 5, aspectr=4)graph2jpg(x=x, file=filen, dpi=400, height = 5, aspectr=4)
导出当前绘图窗口展示的图
### 2. Get the plot from current screen device# 把稳这个x,是运行命令,展示图像xgraph2png(file=filen, dpi=400, height = 5, aspectr=4)graph2tif(file=filen, dpi=400, height = 5, aspectr=4)graph2jpg(file=filen, dpi=400, height = 5, aspectr=4)
导出自定义函数输出的一组图
### 3. Pass the plot as a functioplot.fun <- function(){ print(qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = 0.7))}graph2png(file=filen, fun=plot.fun, dpi=400, height = 5, aspectr=4)graph2tif(file=filen, fun=plot.fun, dpi=400, height = 5, aspectr=4)graph2jpg(file=filen, fun=plot.fun, dpi=400, height = 5, aspectr=4)
转换后的图形:
与Office系列的交互
大部分图的细节修正都是用代码完成的,不须要后续的润色;但如果某一些修正比较特异,不具有程序的通用性特色,或实现起来比较困难,就可以考虑后期修正。比如用AI文章用图的修正和排版。熟习PPT的,也可以用PPT,这时R的图导出PPT,就要用到graph2office系列函数了。
graph2ppt: 将当前R图保存到Microsoft Office PowerPoint/LibreOffice Impress演示文稿中。
graph2doc:将当前的R图保存到Microsoft Office Word/LibreOffice Writer文档中。
函数参数展示和解释
graph2office(x = NULL, file = "Rplot", fun = NULL, type = c("PPT", "DOC"), append = FALSE, aspectr = NULL, width = NULL, height = NULL,scaling = 100, paper = "auto", orient = ifelse(type[1] == "PPT","landscape", "auto"), margins = c(top = 0.5, right = 0.5, bottom = 0.5, left= 0.5), center = TRUE, offx = 1, offy = 1, upscale = FALSE, vector.graphic = TRUE, ...)
margins: 预设留白边距向量。paper: 纸张尺寸——“A5”至“A1”用于Powerpoint导出,或“A5”至“A3”用于Word输出;默认“auto”自动选择适宜您的图形的纸张大小。如果图太大,无法在给定的纸张大小上显示,则按比例缩小。orient: 所需的纸张方向-“自动”,“纵向”或“横向”; Word输出默认为“自动”,Powerpoint默认为“横向”。vector.graphic: 指定是否以可编辑的向量DrawingML格式输出。默认值为TRUE,在这种情形下,编辑Powerpoint或Word中的图形时,可以先对图形元素进行分组。如果设置为FALSE,则将该图以300 dpi的分辨率栅格化为PNG位图格式。(栅(shān)格化,是PS中的一个专业术语,栅格即像素,栅格化即将矢量图形转化为位图。)同样有3种导出办法
# 需运行上面的ggplot2绘图# Create a file namefilen <- "output_filename" # or# filen <- paste("YOUR_DIR/ggplot")# There are 3 ways to use graph2office():### 1. Pass the plot as an object# 导出图形工具graph2ppt(x=x, file=filen)graph2doc(x=x, file=filen, aspectr=0.5)### 2. Get the plot from current screen device# 导出当前预览窗口呈现的图xgraph2ppt(file=filen, width=9, aspectr=2, append = TRUE)graph2doc(file=filen, aspectr=1.7, append =TRUE)### 3. Pass the plot as a function# 导出自定义函数输出的一系列图graph2ppt(fun=plot.fun, file=filen, aspectr=0.5, append = TRUE)graph2doc(fun=plot.fun, file=filen, aspectr=0.5, append = TRUE)
导出到office(ppt和word)中的图形,是可编辑的:
其它导出到ppt的例子(设置长宽比)
graph2ppt(file="ggplot2_plot.pptx", aspectr=1.7)
增加第二张同样的图,9英寸宽和A4长宽比的幻灯片 (append=T,追加)
graph2ppt(file="ggplot2_plot.pptx", width=9, aspectr=sqrt(2), append=TRUE)
添加相同图形的第三张幻灯片,宽度和高度固定
graph2ppt(file="ggplot2_plot.pptx", width=6, height=5, append=TRUE)
禁用矢量化图像导出
graph2ppt(x=x, file=filen, vector.graphic=FALSE, width=9, aspectr=sqrt(2), append = TRUE)
用图填满幻灯片
graph2ppt(x=x, file=filen, margins=0, upscale=TRUE, append=TRUE)
输出矢量图graph2svg: 将当前的R图保存为SVG格式graph2pdf: 将当前的R图保存为PDF格式graph2eps: 将当前的R图保存为EPS格式
函数参数阐明
graph2vector(x = NULL, file = "Rplot", fun = NULL, type = "SVG",aspectr = NULL, width = NULL, height = NULL, scaling = 100, font = ifelse(Sys.info()["sysname"] == "Windows", "Arial","Helvetica")[[1]], bg = "white", colormodel = "rgb", cairo = TRUE,fallback_resolution = 600, ...)
fallback_resolution: dpi中的分辨率用于栅格化不支持的矢量图形。
#需运行上面的ggplot2绘图# Create a file namefilen <- "output_filename" # or# filen <- paste("YOUR_DIR/ggplot")# There are 3 ways to use graph2vector():### 1. Pass the plot as an object# 导出图形工具graph2svg(x=x, file=filen, aspectr=2, font = "Times New Roman", height = 5, bg = "white")graph2pdf(x=x, file=filen, aspectr=2, font = "Arial", height = 5, bg = "transparent")graph2eps(x=x, file=filen, aspectr=2, font = "Arial", height = 5, bg = "transparent")# 导出当前预览窗口呈现的图### 2. Get the plot from current screen devicexgraph2svg(file=filen, aspectr=2, font = "Arial", height = 5, bg = "transparent")graph2pdf(file=filen, aspectr=2, font = "Times New Roman", height = 5, bg = "white")graph2eps(file=filen, aspectr=2, font = "Times New Roman", height = 5, bg = "white")# 导出自定义函数输出的一系列图### 3. Pass the plot as a functiongraph2svg(file=filen, fun = plot.fun, aspectr=2, font = "Arial", height = 5, bg = "transparent")graph2pdf(file=filen, fun=plot.fun, aspectr=2, font = "Arial", height = 5, bg = "transparent")graph2eps(file=filen, fun=plot.fun, aspectr=2, font = "Arial", height = 5, bg = "transparent")
转换3D图形
rgl2png: 将当前的rgl 3D图形保存为PNG格式。
rgl2bitmap(file = "Rplot", type = c("PNG"))
# Create a file namefilen <- tempfile("rgl") # or# filen <- paste("YOUR_DIR/rgl")# Generate a 3D plot using 'rgl'x = y = seq(-10, 10, length = 20)z = outer(x, y, function(x, y) x^2 + y^2)rgl::persp3d(x, y, z, col = 'lightblue')# Save the plot as a pngrgl2png(file = filen)# Note that omitting 'file' will save in current directory
天生的3D图形:
将天生的3D图形保存为PNG格式:
输出统计结果到表格 table2spreadsheettable2excel: 导出统计输出到Microsoft Office Excel/ LibreOffice Calc电子表格中的一个表.table2csv:将统计输出以CSV格式导出到表中(“,”表示值分隔,“。”表示小数)table2csv2: 将统计输出以CSV格式导出到表中(“;”表示值分隔,”,”表示小数)
table2spreadsheet(x = NULL, file = "Rtable", type = c("XLS", "CSV", "CSV2"), append = FALSE, sheetName = "new sheet", digits = 2, digitspvals = 2, trim.pval = TRUE, add.rownames = FALSE, ...)
sheetName: 一个字符串,给出创建的新事情表的名称(仅针对type==”XLS”)。它必须是惟一的(不区分大小写),不受文件中任何现有事情表名称的影响。digits:除具有p值的列外,要显示所有列的有效位数的数目。digitspvals:具有p值的列要显示的有效位数的数目。
# Create a file namefilen <- "table_aov" # or# filen <- paste("YOUR_DIR/table_aov")# Generate ANOVA outputfit=aov(yield ~ block + N P + K, data = npk) # 'npk' dataset from base 'datasets'x=summary(fit)# Save ANOVA table as a CSV### Option 1: pass output as object# 输出工具table2csv(x=x,file=filen, digits = 1, digitspvals = 3, add.rownames=TRUE)# 屏幕输出导出到文件### Option 2: get output from consolesummary(fit)table2csv(file=filen, digits = 2, digitspvals = 4, add.rownames=TRUE)# Save ANOVA table as an Excel# Without formatting of the worksheetxtable2excel(file=filen, sheetName="aov_noformatting", digits = 1, digitspvals = 3, add.rownames=TRUE)# 更多参数# With formatting of the worksheettable2excel(x=x,file=filen, sheetName="aov_formated", append = TRUE, add.rownames=TRUE, fontName="Arial", fontSize = 14, fontColour = rgb(0.15,0.3,0.75), border=c("top", "bottom"), fgFill = rgb(0.9,0.9,0.9), halign = "center", valign = "center", textDecoration="italic")
原始数据的表格:
转换格式之后的,在console中的数据:
文件(csv和excel)中表格数据:
导出为Word中的表,再也不用复制粘贴调格式了 table2office
table2ppt: 导出统计输出到Microsoft Office PowerPoint/ LibreOffice Impress演示文稿中的表
table2doc: 将统计输出导出到Microsoft Office Word/ LibreOffice Writer文档中的表
table2office(x = NULL, file = "Rtable", type = c("PPT", "DOC"), append = FALSE, digits = 2, digitspvals = 2, trim.pval = TRUE, width = NULL, height = NULL, offx = 1, offy = 1, font = ifelse(Sys.info()["sysname"] == "Windows", "Arial", "Helvetica")[[1]], pointsize = 12, add.rownames = FALSE)
# Create a file namefilen <- "table_aov"# filen <- paste("YOUR_DIR/table_aov")# Generate ANOVA outputfit=aov(yield ~ block + N P + K, data = npk) # 'npk' dataset from base 'datasets'# Save ANOVA table as a PPT### Option 1: pass output as objectx=summary(fit)table2ppt(x=x,file=filen, digits = 1, digitspvals = 3, add.rownames =TRUE)### Option 2: get output from consolesummary(fit)table2ppt(x=x,file=filen, width=5, font="Times New Roman", pointsize=14, digits=4, digitspvals=1, append=TRUE, add.rownames =TRUE) # append table to previous slide# Save ANOVA table as a DOC filetable2doc(x=x,file=filen, digits = 1, digitspvals = 3, add.rownames =TRUE)summary(fit)table2doc(file=filen, width=3.5, font="Times New Roman", pointsize=14, digits=4, digitspvals=1, append=TRUE, add.rownames =TRUE) # append table at end of document
将表格数据导出到ppt和word中:
table2tex
table2html: 导出统计输出到HTML表。
table2tex(x = NULL, file = "Rtable", type = "TEX", digits = 2, digitspvals = 2, trim.pval = TRUE, summary = FALSE, standAlone = TRUE, add.rownames = FALSE, ...)
summary:是否汇总数据文件。
standAlone:导出的Latex代码该当是独立可编译的,还是该当粘贴到另一个文档中。
add.rownames:是否该当将行名添加到表中(在第一列之前插入一列)。
# Create a file namefilen <- tempfile(pattern = "table_aov") # or# filen <- paste("YOUR_DIR/table_aov")# Generate ANOVA outputfit=aov(yield ~ block + N P + K, data = npk) # 'npk' dataset from base 'datasets'x=summary(fit)# Export to Latex in standAlone formattable2tex(x=x,file=filen,add.rownames = TRUE)# Export to Latex to paste in tex documentsummary(fit) # get output from the consoletable2tex(file=filen, standAlone = FALSE,add.rownames = TRUE)# Export to HTMLtable2html(x=x,file=filen) # orsummary(fit) # get output from the consoletable2html(file=filen,add.rownames = TRUE)
导出到html或tex中的表格数据:
R统计和作图Graphpad,经典绘图工具初学初探维恩(Venn)图绘制工具大全 (在线+R包)在R中赞赏下努力事情的你,褒奖一份CheatShet别人的电子书,你的电子书,都在bookdownR措辞 - 入门环境RstudioR措辞 - 热图绘制 (heatmap)R措辞 - 根本观点和矩阵操作R措辞 - 热图简化R措辞 - 热图美化R措辞 - 线图绘制R措辞 - 线图一步法R措辞 - 箱线图(小提琴图、抖动图、区域散点图)R措辞 - 箱线图一步法R措辞 - 火山图R措辞 - 富集剖析泡泡图R措辞 - 散点图绘制R措辞 - 韦恩图R措辞 - 柱状图R措辞 - 图形设置中英字体R措辞 - 非参数法生存剖析R措辞 - 绘制seq logo图WGCNA剖析,大略全面的最新教程psych +igraph:共表达网络构建一文学会网络剖析——Co-occurrence网络图在R中的实现一文看懂PCA主身分剖析富集剖析DotPlot,可以服基因共表达聚类剖析和可视化R中1010个热图绘制方法还在用PCA降维?快学学大牛最爱的t-SNE算法吧, 附Python/R代码一个函数抓取代谢组学威信数据库HMDB的所有表格数据文章用图的修正和排版network3D: 交互式桑基图network3D 交互式网络天生Seq logo 在线绘制工具——Weblogo生物AI插图素材获取和拼装辅导ggplot2高效实用指南 (可视化脚本、工具、套路、配色)图像处理R包magick学习条记SOM基因表达聚类剖析初探利用gganimate可视化环球范围R-Ladies(R社区性别多样性组织)发展情形一分钟绘制磷脂双分子层:AI零根本入门和基本图形绘制AI科研绘图(二):模式图的基本画法你知道R中的赋值符号箭头(<-)和等号(=)的差异吗?R措辞可视化学习条记之ggridges包利用ComplexHeatmap绘制热图(一)ggplot2学习条记之图形排列R包reshape2,轻松实现长、宽数据表格转换用R在舆图上绘制网络图的三种方法PCA主身分剖析实战和可视化 附R代码和测试数据iTOL快速绘制颜值最高的进化树!
12个ggplot2扩展包帮你实现更强大的可视化编程模板-R措辞脚本写作:最大略的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出R措辞统计入门课程推举——生物科学中的数据剖析Data Analysis for the Life Sciences数据可视化基本套路总结你知道R中的赋值符号箭头<-和等号=的差异吗?利用dplyr进行数据操作30例交集intersect、并集union、找不同setdiffR包reshape2,轻松实现长、宽数据表格转换1数据类型(向量、数组、矩阵、 列表和数据框)2读写数据所需的紧张函数、与外部环境交互3数据筛选——提取工具的子集4向量、矩阵的数学运算5掌握构造6函数及浸染域7认识循环函数lapply和sapply8分解数据框split和查看工具str9仿照—随机数、抽样、线性模型1初识ggplot2绘制几何工具2图层的利用—根本、加标签、注释3工具箱—偏差线、加权数、展示数据分布4语法根本5通过图层构建图像6标度、轴和图例7定位-分面和坐标系8主题设置、存储导出9绘图须要的数据整理技能创建属于自己的调色板28个实用绘图包,总有几个适宜你热图绘制R做线性回归绘图干系系数矩阵corrplot干系矩阵可视化ggcorrplot绘制交互式图形recharts交互式可视化CanvasXpress聚类剖析factoextraLDA剖析、作图及添加置信-ggord办理散点图样品标签重叠ggrepel添加P值或显著性标记ggpubrAlpha多样性稀释曲线rarefraction curve堆叠柱状图各身分连线画法:突出组间变革冲击图展示组间韶光序列变革ggalluvial桑基图riverplot微生物环境因子剖析ggvegan五彩进化树与热图更配ggtree多元回归树剖析mvpart随机森林randomForest 分类Classification 回归Regression加权基因共表达网络剖析WGCNAcirclize包绘制circos-plotR措辞搭建炫酷的线上博客系统28个实用绘图包,总有几个适宜你热图绘制R做线性回归绘图干系系数矩阵corrplot干系矩阵可视化ggcorrplot绘制交互式图形recharts交互式可视化CanvasXpress聚类剖析factoextraLDA剖析、作图及添加置信-ggord办理散点图样品标签重叠ggrepel添加P值或显著性标记ggpubrAlpha多样性稀释曲线rarefraction curve堆叠柱状图各身分连线画法:突出组间变革冲击图展示组间韶光序列变革ggalluvial桑基图riverplot微生物环境因子剖析ggvegan五彩进化树与热图更配ggtree多元回归树剖析mvpart随机森林randomForest 分类Classification 回归Regression加权基因共表达网络剖析WGCNAcirclize包绘制circos-plotR措辞搭建炫酷的线上博客系统维恩(Venn)图绘制工具大全 (在线+R包)R包circlize:柱状图用腻了?试试好看的弦状图获取pheatmap聚类后和标准化后的结果增强火山图,要不要试一下?一个震荡的交互型3D可视化R包 - 可直接转ggplot2图为3D赠你一只金色的眼 - 富集剖析和表达数据可视化是Excel的图,不!
是R的图道友,来Rstudio里面看动画了用了这么多年的PCA可视化竟然是错的!
!
!