r - 如何绘制和保存 tableGrob 对象

标签 r plot ggplot2 gridextra

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

假设它是一个像这样的小表(你可以自己用内置数据集 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 将图像空间调整到合适的大小?

最佳答案

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

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

关于r - 如何绘制和保存 tableGrob 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003581/

相关文章:

r - mlrMBO rBayesian通过插入符号优化 R keras 模型的错误

r - 基于 y 值的散点图颜色

R图密度ggplot vs plot

r - 使用对数刻度时如何添加垂直线?

r - 在 ggplot2 中为分类数据创建次要网格线

r - 提取字符串中每个唯一字符的函数

r - 如何使用 geom_contour_fill 制作离散渐变色条?

r - 使用循环在 r 中创建包含 ICC 结果的表

python - 循环绘图,仅获取最后一个绘图

r - 使用 ggplot2 网格显示不良