将徽标添加到R中的grid.table PDF输出

将徽标添加到R中的grid.table PDF输出,r,pdf-generation,gridextra,grob,R,Pdf Generation,Gridextra,Grob,我有一个pdf格式的表格输出,我想定制它,使之符合公司主题。然而,我是R领域的新手,仍然发现在添加徽标方面很难站稳脚跟 我的原始数据集由600多行数据组成,非常敏感,因此我使用了一个示例数据集来演示。到目前为止,我已经使用grid和gridExtra包获得了以下代码: library(grid) library(gridExtra) Data <- data.frame(Staff = c("Rod","Barry","Cheiny"), M1 = c(50

我有一个pdf格式的表格输出,我想定制它,使之符合公司主题。然而,我是R领域的新手,仍然发现在添加徽标方面很难站稳脚跟

我的原始数据集由600多行数据组成,非常敏感,因此我使用了一个示例数据集来演示。到目前为止,我已经使用grid和gridExtra包获得了以下代码:

library(grid)
library(gridExtra)

Data <- data.frame(Staff = c("Rod","Barry","Cheiny"),
               M1 = c(50,40,55),
               M2 = c(60,50,55),
               M3 = c(55,50,45))


maxrow <- c(35);
npages <- ceiling(nrow(Data)/maxrow);
pdf("Data.pdf", height = 11, width = 10)
idx <- seq(1, maxrow)
grid.table(Data, rows = NULL, theme = ttheme_minimal())
grid.text("data",gp = gpar(fontsize = 12,fontface = "bold",alpha = 0.5), 
           vjust = -40,
           hjust = -0.5)
for (i in 2:npages){
  grid.newpage();
  if(i*maxrow <= nrow(Data)) {
    idx <- seq(1+((i-1)*maxrow), i*maxrow)
  }else{
    idx <- seq(1+((i-1)*maxrow), nrow(Data))
  }
  grid.table(Data, rows =NULL, theme = ttheme_minimal())
}
dev.off()
库(网格)
图书馆(gridExtra)

Data使用grid.draw()添加元素很容易,但设计取决于您

library(grid)
library(gridExtra)

Data <- data.frame(Staff = c("Rod","Barry","Cheiny"),
                   M1 = c(50,40,55),
                   M2 = c(60,50,55),
                   M3 = c(55,50,45))

library(png)
img <- readPNG(system.file("img", "Rlogo.png", package="png"))

footer <- grobTree(rectGrob(y=0,vjust=0,gp=gpar(fill="grey97",col=NA), height=unit(1,"in")),
                   textGrob(y=unit(0.5,"in"), expression(Corporate^TM~line~(c))),
                   rasterGrob(img, x=1, hjust=1,y=unit(0.5,"in"),height=unit(1,"in")-unit(2,"mm")))

maxrow <- c(35);
npages <- ceiling(nrow(Data)/maxrow);
pdf("Data.pdf", height = 11, width = 10)
idx <- seq(1, maxrow)
grid.table(Data, rows = NULL, theme = ttheme_minimal())
grid.draw(footer)
grid.text("data",gp = gpar(fontsize = 12,fontface = "bold",alpha = 0.5), 
          vjust = -40,
          hjust = -0.5)
for (i in 2:npages){
  grid.newpage();
  if(i*maxrow <= nrow(Data)) {
    idx <- seq(1+((i-1)*maxrow), i*maxrow)
  }else{
    idx <- seq(1+((i-1)*maxrow), nrow(Data))
  }
  grid.table(Data, rows =NULL, theme = ttheme_minimal())
  grid.draw(footer)
}
dev.off()
库(网格)
图书馆(gridExtra)

Data使用grid.draw()添加元素很容易,但设计取决于您

library(grid)
library(gridExtra)

Data <- data.frame(Staff = c("Rod","Barry","Cheiny"),
                   M1 = c(50,40,55),
                   M2 = c(60,50,55),
                   M3 = c(55,50,45))

library(png)
img <- readPNG(system.file("img", "Rlogo.png", package="png"))

footer <- grobTree(rectGrob(y=0,vjust=0,gp=gpar(fill="grey97",col=NA), height=unit(1,"in")),
                   textGrob(y=unit(0.5,"in"), expression(Corporate^TM~line~(c))),
                   rasterGrob(img, x=1, hjust=1,y=unit(0.5,"in"),height=unit(1,"in")-unit(2,"mm")))

maxrow <- c(35);
npages <- ceiling(nrow(Data)/maxrow);
pdf("Data.pdf", height = 11, width = 10)
idx <- seq(1, maxrow)
grid.table(Data, rows = NULL, theme = ttheme_minimal())
grid.draw(footer)
grid.text("data",gp = gpar(fontsize = 12,fontface = "bold",alpha = 0.5), 
          vjust = -40,
          hjust = -0.5)
for (i in 2:npages){
  grid.newpage();
  if(i*maxrow <= nrow(Data)) {
    idx <- seq(1+((i-1)*maxrow), i*maxrow)
  }else{
    idx <- seq(1+((i-1)*maxrow), nrow(Data))
  }
  grid.table(Data, rows =NULL, theme = ttheme_minimal())
  grid.draw(footer)
}
dev.off()
库(网格)
图书馆(gridExtra)

数据谢谢@user10653779。效果非常好,对于标题,我想我只是更改了v和hjust选项?谢谢@user10653779。效果非常好,对于标题,我想我只是更改了v和hjust选项?