在 R 中使用 mfrow:如何给每个子图一个不同的 y-label 和 x-axis 一个标签
using mfrow in R : how do you give each subplot a different y-label and the x-axis one label
我在 R 中工作,我必须制作许多箱线图。这是群体差异的可视化。我想将 x-axis 重新标记为只有一个标题而不是五个(每个子图一个)。我最大的问题是我还希望所有子图的 y-axis 具有不同的标签。
这是我到目前为止尝试过的:
par(mfrow=c(1,5))
lapply(NEW8[,c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")],
function(x) boxplot(x ~ NEW8$PAPA_p4_adhd,col=rainbow(2),
names=c("CN","ADHD"),
ylab=c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")))
所有 y-labels 都添加到每个子图,因此每个子图有 5 行 y-axis 标签(gawayf、humf、sgamef、swtoyf、kissf),每个图都说明使用了哪些数据创建箱线图 (PAPA_P4_ADHD
)。
我希望每个地块只有相应的 y-axis 标签,而 x-axis 对所有五个地块都有 1 个标签。
这是我当前的输出:
非常感谢
而不是 lapply
尝试 mapply
- 这将允许将不同的参数传递给每个函数调用:
par(mfrow=c(1,5))
myBox <- function(x, y, ...) boxplot(x ~ y, col=rainbow(2), names=c("CN", "ADHA"), ...)
mapply(myBox,
x = NEW8[,c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")],
y = list(NEW8$PAPA_p4_adhd), # we make this a list so it has length(1)
ylab = c("gawayf", "humf", "sgamesf", "swtoyf", "kissf"),
xlab = "" # empty x-lab
)
对于 x-lab,你必须做一个技巧 - 开始一个覆盖所有图的新空图,并且只添加 x 轴:
par(fig=c(0,1,0,1), oma=c(0,0,0,0), mar=par("mar"), new=TRUE)
plot.new()
title(xlab="my x-axis")
注意:我自己并没有尝试 运行 此代码,如果这里有任何问题 - 请发表评论并尝试解决它。
我在 R 中工作,我必须制作许多箱线图。这是群体差异的可视化。我想将 x-axis 重新标记为只有一个标题而不是五个(每个子图一个)。我最大的问题是我还希望所有子图的 y-axis 具有不同的标签。
这是我到目前为止尝试过的:
par(mfrow=c(1,5))
lapply(NEW8[,c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")],
function(x) boxplot(x ~ NEW8$PAPA_p4_adhd,col=rainbow(2),
names=c("CN","ADHD"),
ylab=c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")))
所有 y-labels 都添加到每个子图,因此每个子图有 5 行 y-axis 标签(gawayf、humf、sgamef、swtoyf、kissf),每个图都说明使用了哪些数据创建箱线图 (PAPA_P4_ADHD
)。
我希望每个地块只有相应的 y-axis 标签,而 x-axis 对所有五个地块都有 1 个标签。
这是我当前的输出:
非常感谢
而不是 lapply
尝试 mapply
- 这将允许将不同的参数传递给每个函数调用:
par(mfrow=c(1,5))
myBox <- function(x, y, ...) boxplot(x ~ y, col=rainbow(2), names=c("CN", "ADHA"), ...)
mapply(myBox,
x = NEW8[,c("gawayf", "humf", "sgamesf", "swtoyf", "kissf")],
y = list(NEW8$PAPA_p4_adhd), # we make this a list so it has length(1)
ylab = c("gawayf", "humf", "sgamesf", "swtoyf", "kissf"),
xlab = "" # empty x-lab
)
对于 x-lab,你必须做一个技巧 - 开始一个覆盖所有图的新空图,并且只添加 x 轴:
par(fig=c(0,1,0,1), oma=c(0,0,0,0), mar=par("mar"), new=TRUE)
plot.new()
title(xlab="my x-axis")
注意:我自己并没有尝试 运行 此代码,如果这里有任何问题 - 请发表评论并尝试解决它。