如果我在一个面板中有几个图,我希望能够将文本注释放在一个以上的地块区域中,或者在地块区域之间放置文本注释。我确信一定有办法做到这一点,但我需要一些帮助,弄清楚如何做到。
下面是一些伪造的数据,可以在一个面板上创建四个地块:
x1 = rnorm(100)
x2 = rnorm(100)
x3 = rnorm(100)
x4 = rnorm(100)
par(mfrow=c(2,2))
hist(x1, xlab="", main="Group A")
hist(x2, xlab="", main="Group B")
hist(x3, xlab="", main="")
hist(x4, xlab="", main="")这将创建下面的多个绘图面板,但我也添加了红色文本。我在R中创建了图形面板之后,通过注释PDF文件添加了红色文本,然后将其保存为PDF格式。我想学习的是如何在R中以编程方式注释图形面板,而不是保存它和注释保存的文件。
通常,我只需使用text()或mtext()添加一个注释。但是,只有在注释单个图时,这才有效。是否有一种方法可以添加与整个4组图的坐标相关的注释?我现在正在寻找一个基本图形的解决方案,但是如果有人知道如何在ggplot2或格子中做类似的事情,我也会感兴趣的。

发布于 2012-06-25 23:49:20
如果您确实希望更好地控制这些类型的布局问题,可以使用恰当的名称layout。
m <- matrix(c(1,2,3,3,4,5,6,6),ncol = 2,byrow = TRUE)
layout(m,widths = c(0.5,0.5),heights = c(0.45,0.05,0.45,0.05))
par(mar = c(2,4,4,2) + 0.1)
hist(x1, xlab="", main="Group A")
hist(x2, xlab="", main="Group B")
par(mar = c(0,0,0,0))
plot(1,1,type = "n",frame.plot = FALSE,axes = FALSE)
u <- par("usr")
text(1,u[4],labels = "Here",col = "red",pos = 1)
par(mar = c(2,4,2,2) + 0.1)
hist(x3, xlab="", main="")
hist(x4, xlab="", main="")
par(mar = c(0,0,0,0))
plot(1,1,type = "n",frame.plot = FALSE,axes = FALSE)
u <- par("usr")
text(1,u[4],labels = "Here",col = "red",pos = 1)

发布于 2012-06-25 23:35:41
您希望将mtext与outer=TRUE结合使用。例如,mtext('Results2', side=1, line=-2, outer=TRUE)和mtext('Results1', side=3, line=-20, outer=TRUE)。
发布于 2012-06-27 17:21:49
在这个例子中,layout函数是最简单的,正如已经显示的那样,但是对于更一般的情况,您还应该学习grconvertX和grconvertY函数(以及使用par(xpd=设置剪贴画)。转换函数可以为不同的坐标系提供当前用户坐标中的坐标,例如,您可以通过从规范化的设备坐标转换0.5在页面上对某些内容进行中心化。
https://stackoverflow.com/questions/11198767
复制相似问题