2

是否可以在 R 的箱线图中圈出一个特定的框?这里的假设是我事先知道我必须突出显示哪些框。

4

2 回答 2

7

我衷心支持@csgillespie 的建议,只是让它变成不同的颜色。

也就是说,我玩了一下,这就是我想出的(使用@Marc的数据):

df <- data.frame(s1=rnorm(100), s2=rnorm(100, mean=2), s3=rnorm(100, mean=-2))

绘制箱线图并保留用于绘制椭圆的统计信息:

foo <- boxplot(df, border=c(8,8,1), lwd=c(1,1,3))

设置半长轴和半短轴:

aa <- 0.5
bb <- foo$stats[4,3]-foo$stats[2,3]

在第三个框周围绘制一个参数化椭圆:

tt <- seq(0,2*pi,by=.01)    
lines(3+aa*cos(tt),foo$stats[3,3]+bb*sin(tt))

在此处输入图像描述

于 2012-11-20T12:39:25.880 回答
1

如果您想使用有点手绘的外观并且可以做一些交互部分(例如,创建一个演示文稿,其中一张幻灯片只显示情节,那么下一张幻灯片包括感兴趣的那个圈子)。

  1. 使用该locator功能单击感兴趣的绘图部分周围的点,您可能需要设置type='l'以便可以看到您正在制作的形状(但随后需要重新创建绘图而不添加线条)

  2. 将上面的返回值传递给xspline带有其他选项的函数。

例子:

boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
tmp <- locator(type='l')  # click on plot around box of interest
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
xspline(tmp, open=FALSE, border='red', lwd=3)
于 2012-11-20T20:18:58.167 回答