用par(mfrow)编译的数字面板的通用主标题

时间:2013-02-02 09:13:35

标签: r graph plot title par

我汇编了与par(mfrow=c(2,2))一起绘制的4幅图。我想为上面的2个图绘制一个共同的标题,并在下面的2个面板中绘制一个共同的标题,这些标题位于2个左右图之间。

这可能吗?

4 个答案:

答案 0 :(得分:41)

line

enter image description here

par(mfrow = c(2, 2)) plot(iris$Petal.Length, iris$Petal.Width) plot(iris$Sepal.Length, iris$Petal.Width) plot(iris$Sepal.Width, iris$Petal.Width) plot(iris$Sepal.Length, iris$Petal.Width) mtext("My 'Title' in a strange place", side = 3, line = -21, outer = TRUE) 代表“保证金文字”。 mtext表示将其置于“顶部”边距。 side = 3表示要将展示位置偏移21行。 line = -21表示可以使用外边距区域。

要在顶部添加其他“标题”,您可以使用outer = TRUE

添加它

答案 1 :(得分:32)

您可以使用函数layout()并设置两个列中出现的两个绘图区域(请参阅matrix()中的重复数字1和3)。然后我使用plot.new()text()来设置标题。您可以使用边距和高度来获得更好的代表性。

x<-1:10
par(mar=c(2.5,2.5,1,1))
layout(matrix(c(1,2,3,4,1,5,3,6),ncol=2),heights=c(1,3,1,3))
plot.new()
text(0.5,0.5,"First title",cex=2,font=2)
plot(x)
plot.new()
text(0.5,0.5,"Second title",cex=2,font=2)
hist(x)
boxplot(x)
barplot(x)

enter image description here

答案 2 :(得分:12)

使用title(...)和上面相同的参数可以使用相同但粗体显示:

title("My 'Title' in a strange place", line = -21, outer = TRUE)

答案 3 :(得分:7)

这是另一种方法,使用this post中的 searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); int i = 0; foreach(ManagementObject wmi_HD in searcher.Get()) { // get the hard drive from collection // using index HardDrive hd = (HardDrive)hdCollection[i]; // get the hardware serial no. if (wmi_HD["SerialNumber"] == null) hd.SerialNo = "None"; else hd.SerialNo = wmi_HD["SerialNumber"].ToString(); ++i; } 功能。

line2user

centered_titles

此处,标题位于比图的上边缘高2行,如par(mfrow = c(2, 2)) plot(runif(100)) plot(runif(100)) text(line2user(line=mean(par('mar')[c(2, 4)]), side=2), line2user(line=2, side=3), 'First title', xpd=NA, cex=2, font=2) plot(runif(100)) plot(runif(100)) text(line2user(line=mean(par('mar')[c(2, 4)]), side=2), line2user(line=2, side=3), 'Second title', xpd=NA, cex=2, font=2) 所示。我们将它相对于第2和第4个图表偏移,使左右边距的组合宽度减去一半,即line2user(2, 3)

mean(par('mar')[c(2, 4)])表示用户坐标中轴的偏移量(行数),定义为:

line2user