2013-08-01 18 views
1

我有一个数据框,我想创建一个表并将其保存为一个PNG文件。如何显示表中的所有数据点,自动调整表的宽度和高度

我这样做:

library(gridExtra) 
my_table<- tableGrob(y[,1:3],gpar.coretext =gpar(fontsize=8),gpar.coltext=gpar(fontsize=8), gpar.rowtext=gpar(fontsize=8)) 
png("cpu.png") 
grid.arrange(my_table) 
dev.off() 

我需要这个PNG文件,包括在我的表中的所有数据。如果我的桌子很大,它会被切断。我如何确保所有数据都显示在此表上?

+0

你有没有读过[这个答案](http://stackoverflow.com/a/10098910/1305688)?此外,如果您的代码可重现,则更容易处理您的问题。 –

回答

2

你的PNG文件目前有默认的高度;您可以明确指定它以确保整个表格适合页面。

library(gridExtra) 
d <- head(iris, 50) 
tb <- tableGrob(d) 

h <- convertHeight(grobHeight(tb), "in", valueOnly=TRUE) 
w <- convertWidth(grobWidth(tb), "in", valueOnly=TRUE) 

png("iris.png", width = w, height = h, units = "in", res=300) 
grid.draw(tb) 
dev.off() 

enter image description here

这并不完全准确,因为某些原因,但它应该帮助。

+0

这太好了。还有一个问题,我将如何避免不打印单元格号码? – user1471980

+0

这对我来说不起作用,也许自答案以来就有了变化。 我修改了答案是: h < - sum(convertHeight(tb $ heights,“in”,valueOnly = TRUE)); w < - sum(convertWidth(tb $ width,“in”,valueOnly = TRUE)) – Sonia

相关问题