2015-12-19 123 views
1

我知道我可以水平线使用命令等添加多个水平行中的箱线图

abline(h=3) 

当存在在单个面板的多个箱图添加到的箱线图,我可以添加不同的水平线每个单个盒子?

enter image description here

在上述图中,我想补充线 'Y = 1.2' 为1, 'Y = 1.5' 2,和 'y = 2.1' 为3.

+0

只运行3 abline(),每个 – MLavoie

+0

@MLavoie否,那么每个图将会有三条水平线。我想每个小区只有一条线。 – user67275

+0

@MLavoie如果我使用'abline'命令,这一行适用于所有三个箱型图。我希望它只适用于一个情节。 – user67275

回答

3

我我不确定我是否完全理解,想要什么,但可能是这样的:为每个boxplot添加一条线,以覆盖与boxplot相同的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") 

这给出了以下情节:

enter image description here