将 huxtable 数据和 ggplot 导出到一个 excel 文件中

export a huxtable data and a ggplot into one excel file

我想问我是否可以从 R 中导出一个 huxtable 数据集 sheet 和另一个 sheet 中 ggplot2 的绘图以及同一个 excel 文件?

wb <- createWorkbook()
addWorksheet(wb, sheetName = "Frequencies")
addWorksheet(wb, sheetName = "Plot")

writeDataTable(wb, sheet = "Frequencies", x = huxtable, row.names=F)
plot(p)
insertPlot(wb,"Plot")

saveWorkbook(wb=wb, file="path_file/name_file.xlsx", overwrite=TRUE) 

我尝试使用上面的代码,huxtable 是格式化的数据集(数据集的行是彩色的),p 是我使用函数 [=16= 生成的图],但我没有得到所需的输出,因为我丢失了 huxtable.

的格式

我试过这段代码,但它只导出带格式的 huxtable 而不是绘图:

file<- as_Workbook(huxtable,sheet="Frequencies")

showGridLines(file, sheet="Frequencies", showGridLines = FALSE)

openxlsx::saveWorkbook(file,"file_path/file_name.xlsx", overwrite = TRUE)

这里是绘图和 huxtable 的示例:


p <- 
  ggplot(mtcars)+
  geom_histogram(aes(x = mpg))

p


huxtable<-as_hxtable(mtcars[1:10,])
for (i in 1:length(huxtable) ) {
  
  if  (i  == 1){
    huxtable<-set_background_color(huxtable,row=i  , everywhere, "yellow")  
  }
  
  
  else{
    huxtable<-set_background_color(huxtable,row=i  , everywhere, "red")
  }
  
}

huxtable

我想将彩色数据集 + 绘图导出到同一个 excel 文件而不丢失数据集的格式

这是一个可以调整的潜在工作流程。查看包文档中的选项,因为下面的答案只使用了最少的参数,而且所有使用的包都提供了很多选项。

在 OP 包含格式化的 huxtable 后更新。

library(openxlsx)
library(huxtable)
library(ggplot2)

# create workbook
wb <- createWorkbook()

#create sheet for plot
addWorksheet(wb, sheetName = "plot")


# create plot
p <- 
  ggplot(mtcars)+
  geom_histogram(aes(x = mpg))

p  

# insert plot inserts the current plot into the worksheet
insertPlot(wb, sheet = "plot")

# create huxtable with formatting
hx <- as_huxtable(mtcars[1:10,])

for (i in 1:length(hx) ) {
  
  if  (i  == 1){
    hx<-set_background_color(hx, row = i, everywhere, "yellow")  
  }
  
  
  else{
    hx<-set_background_color(hx, row = i, everywhere, "red")
  }
  
}

hx

# use huxtable::as_Workbook function to convert table for export into excel workbook
as_Workbook(hx, Workbook = wb, sheet = "table")


## Save workbook
saveWorkbook(wb, "eg_table_plot.xlsx", overwrite = TRUE)

reprex package (v2.0.1)

创建于 2021-12-02