我知道我可以使用类似的命令将水平线添加到箱线图

abline(h=3)

当一个面板中有多个箱型图时,是否可以为每个箱型图添加不同的水平线?

r - 在箱线图中添加多条水平线-LMLPHP

在上面的图中,我想为1添加线“y = 1.2”,为2添加线,“y = 1.5”,为3添加线“y = 2.1”。

最佳答案

我不确定自己想要的是什么,但是可能是这样的:为每个箱形图添加一条线,使其覆盖与箱形图相同的x轴范围。

框的宽度由pars$boxwex控制,默认设置为0.8。这可以从boxplot.default的参数列表中看出:

formals(boxplot.default)$pars
## list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5)

因此,以下为每个箱线图生成一个线段:
# create sample data and box plot
set.seed(123)
datatest <- data.frame(a = rnorm(100, mean = 10, sd = 4),
                       b = rnorm(100, mean = 15, sd = 6),
                       c = rnorm(100, mean = 8, sd = 5))
boxplot(datatest)

# create data for segments
n <- ncol(datatest)
# width of each boxplot is 0.8
x0s <- 1:n - 0.4
x1s <- 1:n + 0.4
# these are the y-coordinates for the horizontal lines
# that you need to set to the desired values.
y0s <- c(11.3, 16.5, 10.7)

# add segments
segments(x0 = x0s, x1 = x1s, y0 = y0s, col = "red")

这给出了下面的图:

r - 在箱线图中添加多条水平线-LMLPHP

关于r - 在箱线图中添加多条水平线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34366196/

10-10 13:58
查看更多