这不是一个答案。
您的代码不可重现。将您的数据包装在一个read.table()
函数中(并接受默认变量名称),猜测您正在使用基本图形,修复代码中的拼写错误,并加载gridExtra
包(grid.arrange
函数所必需的),我仍然无法让您的代码工作。使用ggplot2
包来绘制图表,我可以让你的代码工作。代码现在可以重现了。请参阅此处了解如何制作一个可重复的出色示例。使用我的代码,我认为结果看起来相当不错。但这可能不是你想要的。这就是社区要求您生成可重现示例的原因。最好看看“p2 和 p1 之间有很多空间”是什么意思。
但是从您上面的评论中获取您的解决方法 - 代码中有不必要的元素。您不需要同时使用grid.arrange
和arrangeGrob
。另外,因为您将元素并排排列,所以我认为您不需要同时使用widths
and heights
; widths
一个人就足够了。
library(ggplot2)
library(gridExtra)
x = read.table(text = "
1/1/2010 10
1/2/2010 20
1/3/2010 15
1/4/2010 56
1/5/2010 46
1/6/2010 15
1/8/2010 15
1/9/2010 15
1/10/2010 20
1/11/2010 15
1/12/2010 15
1/13/2010 40
1/14/2010 15
1/15/2010 15
1/16/2010 70", sep = "", header = FALSE)
p1<-ggplot(x, aes(V2, V1)) + geom_point()
p2<-tableGrob(x)
grid.arrange(p2, p1, main="Total Data and Image", ncol = 2)
你的修复:
grid.arrange(p2, p1, main="Total Data and Image", ncol = 2, widths=c(1,2))
编辑
Baptiste 的解决方案 - 请参阅以下评论:
grid.arrange(p2, p1, main=textGrob("Total Data and Image", gp=gpar(cex=3)), ncol = 2,
widths=unit.c(grobWidth(p2), unit(1,"npc") - grobWidth(p2)))