如何绘制和保存 tableGrob 对象

How to plot and save tableGrob objects

在 R 中使用 ggplot2gridExtra,我有一个 tableGrob,我想绘制并保存它。

假设它是一个像这样的小table(你可以用内置数据集iris自己试试):

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

查看结果:

太棒了,效果很好!但是...在 table 周围绘制了很多白色 space,因为 ggsave 默认为 w=7, h=7(英寸),并且 table 不会按比例放大覆盖 space。 我可以手动指定 wh,但我必须绘制 many tables 并且找到所有正确的价值观。

如果我尝试绘制更大的 table:

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

...它不再合适了!

那么,我如何自动告诉绘制的table根据绘图大小重新调整?或者我如何告诉 ggsave 将图像 space 调整到合适的大小?

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)

注意:左边的小白边是由于行名是右对齐的,它可以被移除,例如通过调整填充。