2017-03-24 55 views
2

在R中使用ggplot2gridExtra我有一个tableGrob,我想绘制并保存。如何绘制并保存tableGrob对象

比方说,这是这样一个小桌子(你可以自己与尝试的biult,在数据集中iris):

ggsave(plot=tableGrob(head(iris[,1:3])), filename="test.png") 

看到的结果是:Small table

奇妙的,它的作品!然而......桌子周围绘制了很多空白区域,因为ggsave默认为w=7, h=7(英寸),并且该表格不会扩大以覆盖该空间。 我可以手动指定wh,但我必须绘制许多表,这将是一个大量的工作,找到所有正确的价值观。

如果我尝试绘图更大的表:

ggsave(plot=tableGrob(iris), filename="test2.png") 

...它不适合了! Big table

所以,我怎么能自动告诉绘制表调整根据情节大小?或者我怎么能告诉ggsave调整图像空间到正确的尺寸?

回答

3
tg = gridExtra::tableGrob(iris[1:40,]) 
h = grid::convertHeight(sum(tg$heights), "in", TRUE) 
w = grid::convertWidth(sum(tg$widths), "in", TRUE) 
ggplot2::ggsave("test.pdf", tg, width=w, height=h) 

enter image description here

注:小白边,左边是由于rownames是右对齐,它可以被去除例如通过调整填充。