2017-03-24 73 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是右對齊,它可以被去除例如通過調整填充。