如何绘制和保存tableGrob对象

时间:2017-03-24 15:35:03

标签: r plot ggplot2 gridextra

在R中使用ggplot2gridExtra,我想要绘制并保存tableGrob

假设它是一个像这样的小桌子(您可以使用biult-in数据集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将图像空间调整到合适的尺寸?

1 个答案:

答案 0 :(得分: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)

enter image description here

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