如何绘制和保存tableGrob对象

AF7*_*AF7 2 plot r ggplot2 gridextra

使用ggplot2gridExtra在R中,我有一个tableGrob我想要绘制和保存的.

假设它是一个像这样的小桌子(您可以使用biult-in数据集自己尝试iris):

ggsave(plot=tableGrob(head(iris[,1:3])), filename="test.png")
Run Code Online (Sandbox Code Playgroud)

看结果:小桌子

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

如果我试图绘制一个更大的表格:

ggsave(plot=tableGrob(iris), filename="test2.png")
Run Code Online (Sandbox Code Playgroud)

......它不再适合了! 大桌子

那么,如何根据绘图大小自动告知绘制的表格重新调整?或者我如何判断ggsave将图像空间调整到合适的大小?

bap*_*ste 5

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意:左边的小白边是由于rownames是右对齐的,可以通过调整填充来删除它.