我正在绘制数据库性能数据,主要是使用ggplot2。共有8页相对复杂的图表和2页tableGrobs。我只是检测了我的代码,以确定我花费时间和总共25秒的时间,这些秒中的13个在最后2页是tableGrobs。这25秒包括加载数据,用stringR进行严格的解析等。这是示例输出: https://www.dropbox.com/s/3s6bi70py5pgpdm/PSPROD-259-341-1-plot.pdf,虽然这些时间的最后一页有75行和17列。
那么,这是其他人看到的吗?是否有替代tableGrob可能更快?
我用来生成SQL表的代码是:
sqlSummaryText1 <- tableGrob(head(subset(main$DF_SQL_SUMMARY,
select=-c(PX_EXEC,LOG_READS)),75),
show.rownames = FALSE,
gpar.coretext = gpar(fontsize=5),
gpar.coltext = gpar(fontsize=5),
padding.v = unit(1, "mm"),
padding.h = unit(1, "mm"),
show.colnames = TRUE,
col.just = "left",
gpar.corefill = gpar(fill=NA,col=NA),
h.even.alpha = 0 )
grid.arrange(sqlSummaryText1,ncol = 1, widths=c(1))
答案 0 :(得分:4)
很难想象比grid.table
更慢的东西,几乎任何替代方案都会快得多。您可以在基本图形中使用textplot或addtable2plot,或者使用各种选项在Sweave / knitr等处理的pdf文档中生成表格。
grid.table
缓慢的主要原因是因为每个单元格都包含一个textGrob
;为所有标签设置一个textGrob
(参见this document的示例2),它会更快,但功能更少,实施起来更麻烦。基本实现是shown here。