gpt4 book ai didi

r - 如何在R箱图中的轴标签和轴标题之间放置更多空间

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

我正在R中使用以下代码创建箱线图:

boxplot(perc.OM.y ~ Depth, axes = F, ylim = c(-0.6, 0.2), xlim = c(3.5, 5.5),
lwd = 0.1, col = 8,
ylab = "Loss of Percent Organic Matter per Year", cex.lab = 1.5)
axis(1, at = c(3.5, 4, 5, 5.5), labels = c(" ", "Shallow", "Deep", " "),
cex.axis = 1.5)
axis(2, cex.axis = 1.5)

问题是y轴上的数字标签当前与轴标题重叠。有没有办法在轴标题和轴编号标签之间放置更多空间?

谢谢

最佳答案

## dummy data
dat <- data.frame(Depth = sample(c(3:6), 20, replace = TRUE), OM = 5 * runif(20))

通过使图的左侧( side = 2)的边距变大,为y轴标签和注释添加一些空间:
## margin for side 2 is 7 lines in size
op <- par(mar = c(5,7,4,2) + 0.1) ## default is c(5,4,4,2) + 0.1

现在绘制:
## draw the plot but without annotation
boxplot(OM ~ Depth, data = dat, axes = FALSE, ann = FALSE)
## add axes
axis(1, at = 1:4, labels = c(" ", "Shallow", "Deep", " "), cex.axis = 1.5)
axis(2, cex.axis = 2)
## now draw the y-axis annotation on a different line out from the plot
## using the extra margin space:
title(ylab = "Loss of Percent Organic Matter per Year", cex.lab = 1.5,
line = 4.5)
## draw the box to finish off
box()

然后重置绘图边距:
par(op)

这给出:

因此,我们在第2面为图的边缘创建了更多空间,然后分别绘制了轴和注释( ylab)以控制图的间距。

因此,关键是这一行:
op <- par(mar = c(5,7,4,2) + 0.1) ## default is c(5,4,4,2) + 0.1

我们要做的是将原始图形参数保存在对象 op中, 分别将底部,左侧,顶部,右侧边距的边距大小(以行数为单位)分别设置为5、7、4、2 + 0.1行。上面的行显示了默认值,因此该代码在左边距处提供的行数比默认情况下通常提供的多2行。

然后,当我们使用 title()绘制y轴标签时,我们指定在7条线的哪一行绘制标签:
title(ylab = "Loss of Percent Organic Matter per Year", cex.lab = 1.5,
line = 4.5)

在这里,我使用了 4.5行,但是 5也可以使用。 'line'的值越大,则距绘制标签的图越远。

诀窍是在 'line'调用中找到左边距 的值和的值,以允许轴刻度线和轴标签不重叠。反复试验可能是找到基本图形所需值的最佳解决方案。

关于r - 如何在R箱图中的轴标签和轴标题之间放置更多空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506046/

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