如何跨越或作为R多情节面板地块之间注释(How to annotate across or betw

2019-06-25 18:06发布

如果我有一个面板几个情节,我希望能够把文本注释跨越一个以上的绘图区域去或绘图区域之间的犹豫。 我敢肯定,必须有办法做到这一点,但我需要一些帮助搞清楚如何。
下面是一些假的数据到一个面板上创建四个地块:

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="")

这将创建多情节面板下方,但我也用红色添加的文本。 我通过注释的PDF文件,我创建了R上的图形面板添加红色文本,然后保存为一个PDF。 我想了解的是如何以编程方式诠释R内的图板,而不是将它保存和注释保存的文件。
通常情况下,我想补充一个使用注释text()或者mtext() 但是,只有当你标注一个图的作品。 有没有办法添加注释相对于4个图表整个面板的坐标? 我正在寻找在基地图形解决方案的权利,但如果有谁知道怎么做GGPLOT2或晶格类似的东西,我很希望看到这一点。

Answer 1:

如果你真的想在这些类型的布局问题更精细的控制,您可以使用适当命名的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)



Answer 2:

你想用mtextouter=TRUE 。 例如, mtext('Results2', side=1, line=-2, outer=TRUE)mtext('Results1', side=3, line=-20, outer=TRUE)



Answer 3:

在这个例子中的layout功能是最简单的如已被显示,但更普遍的情况下,你也应该学会grconvertXgrconvertY功能(使用设置裁剪沿par(xpd= 。转换功能,可以让你在当前的坐标用户坐标不同的坐标系,因此,例如,你可以从标准化设备坐标转换0.5居中页面上的东西。



文章来源: How to annotate across or between plots in multi-plot panels in R
标签: r graphics