gpt4 book ai didi

r - 使用 par(mfrow=c(x,y)) 生成的图的每个面板上的标题键

转载 作者:行者123 更新时间:2023-12-04 12:03:35 27 4
gpt4 key购买 nike

为了在科学出版物中使用,我想在用 par(mfrow=c(3,1)) 生成的一个图中的三个图中添加一个键(A、B、C)作为“标题”。
向单个图添加漂亮的“标题”键的一个非常简单的解决方案是使用 title() 的“外部”参数(例如 title(outer=T,adj=0,main="A",cex=1.1, col="black",font=2,line=-1) )但是当这将用于多个图时,所有标题都以同一个地方:

par(mfrow=c(3,1))
plot(rnorm(100),col="red")
title(outer=T,adj=0,main="A",cex=1.1,col="black",font=2,line=-1)
plot(rnorm(100),col="blue")
title(outer=T,adj=0,main="B",cex=1.1,col="black",font=2,line=-1)
plot(rnorm(100),col="green")
title(outer=T,adj=0,main="C",cex=1.1,col="black",font=2,line=-1)

With keys above another

我知道我可以使用 layout 和/或 mtext ( Common main title of a figure panel compiled with par(mfrow) ) 但是我觉得可能有一个更简单的解决方案我忽略了(我没有使用 Adob​​e Illustrator 并且想使用 R 来完全生成图形) .
我可以通过使用布局获得的解决方案不够好(键与情节分离太多,左侧不够),而且我发现使用边距和坐标有点太乏味了。
par(mar=c(1,2,2,1))
layout(matrix(seq(1,6),ncol=1),heights=rep(c(1,3),3))
plot.new()
text(0,0.5,"A",cex=1.1,font=2)
plot(rnorm(100),col="red")
plot.new()
text(0,0.5,"B",cex=1.1,font=2)
plot(rnorm(100),col="blue")
plot.new()
text(0,0.5,"C",cex=1.1,font=2)
plot(rnorm(100),col="blue")

Undesired result
任何帮助将非常感激。即使答案是这根本不可能以简单的方式实现,但这仍然非常有帮助。

最佳答案

当您使用 outer=TRUE ,您要求在外边距中写下标题(所有子图通用)。做你想做的事,只需设置 outer=FALSE :

outer = FALSE

line = -2
cex = 2
adj = 0.025

par(mfrow=c(3,1))
plot(rnorm(100),col="red")
title(outer=outer,adj=adj,main="A",cex.main=cex,col="black",font=2,line=line)
plot(rnorm(100),col="blue")
title(outer=outer,adj=adj,main="B",cex.main=cex,col="black",font=2,line=line)
plot(rnorm(100),col="green")
title(outer=outer,adj=adj,main="C",cex.main=cex,col="black",font=2,line=line)

thePlot

此外,如果您希望标签在侧面,您可以使用 mtext相反 title :
line = 6
cex = 2
las = 2

par(mfrow=c(3,1), oma=c(1,6,1,1))

plot(rnorm(100),col="red")
mtext("A", side=2, line=line, cex=cex, las=las)
plot(rnorm(100),col="blue")
mtext("B", side=2, line=line, cex=cex, las=las)
plot(rnorm(100),col="green")
mtext("C", side=2, line=line, cex=cex, las=las)

plot2

将标签放在角落的另一种选择是:
line = 1
cex = 2
side = 3
adj=-0.05

par(mfrow=c(3,1), oma=c(1,6,1,1))

plot(rnorm(100),col="red")
mtext("A", side=side, line=line, cex=cex, adj=adj)
plot(rnorm(100),col="blue")
mtext("B", side=side, line=line, cex=cex, adj=adj)
plot(rnorm(100),col="green")
mtext("C", side=side, line=line, cex=cex, adj=adj)

plot3

可以对 adj 使用负值.

关于r - 使用 par(mfrow=c(x,y)) 生成的图的每个面板上的标题键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19690175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com