0

我喜欢在同一张图片中放置一张桌子和一张图。我正在这样做:

我的数据框 x 是这样的:

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

p1<-plot(x)
p2<-tableGrob(x)

png("image1.png")
grid.arrange(p2, p1, main="Total Data and Image"
dev.off()

它有效,但 p2 和 p1 之间似乎有很多空间。我怎么可能没有或只有一点点空间?另外,有没有办法让主字体变大?

谢谢,

4

2 回答 2

3

这不是一个答案。

您的代码不可重现。将您的数据包装在一个read.table()函数中(并接受默认变量名称),猜测您正在使用基本图形,修复代码中的拼写错误,并加载gridExtra包(grid.arrange函数所必需的),我仍然无法让您的代码工作。使用ggplot2包来绘制图表,我可以让你的代码工作。代码现在可以重现了。请参阅此处了解如何制作一个可重复的出色示例。使用我的代码,我认为结果看起来相当不错。但这可能不是你想要的。这就是社区要求您生成可重现示例的原因。最好看看“p2 和 p1 之间有很多空间”是什么意思。

但是从您上面的评论中获取您的解决方法 - 代码中有不必要的元素。您不需要同时使用grid.arrangearrangeGrob。另外,因为您将元素并排排列,所以我认为您不需要同时使用widthsand 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)))
于 2012-05-23T07:49:11.887 回答
0

要增加主要用途的字体大小:

plot(x, y , cex.main=3)

看看这篇文章,你就会知道字体大小: 在 R 软件中绘图,如何在大型 PNG 文件中放大轴值

于 2012-05-23T01:24:28.867 回答