当我使用grid.arrange将3个绘图输出到html报告时,我的具体问题很明显,有时会裁剪最后一个绘图(这是一个tableGrob)。
我正在使用3个单独的grid.arrange()
语句,使用knitr在html报告中放置一个boxplot,一个时间序列图和一个tableGrob。
用于输出的代码是:
grid.arrange(p1,top=main)
grid.arrange(p2TS)
if(nrow(over5)>0){
tg=tableGrob(over5,theme=tt3,rows = NULL)
tg$widths = unit(rep(1/4, ncol(tg)), "npc")
grid.arrange(tg)
}
当tg对象少于大约10行数据时,这将完美显示。
然而,在测试较大的数据集时,我发现报告中固定高度“窗口”中的grid.arrange(tg)
输出是不可取的。
我的问题是如何更改grid.arrange(tg)
输出的高度以匹配内部包含的tg对象的高度(带有一些顶部和底部边距)??
我希望了解这些属性的更改机制,以便我可以微调输出。如果可能的话,我会在一行代码中显示3x1网格显示所有3个输出,但所有绘图都会压缩且不可读,这就是为什么我有3个单独的grid.arrange()
语句。我猜我真正的问题是我不明白这里是如何操纵属性的。
非常感谢帮助。
答案 0 :(得分:1)
我找到了一种解决方法,使用kable将HTML表格打印到报告而不是grid.arrange()
打tableGrob()
:
grid.arrange(p1,top=main)
grid.arrange(p2TS)
if(nrow(tg)>0){
print(knitr::kable(tg))
}
同样,当我在for循环中运行此代码时,我需要在this issue page上使用解决方法,这需要我将kable包装在print()
语句中。