2013-01-07 112 views
4

特定數據點這裏是我的示例數據:箱線圖與置信區間,並確定r中

set.seed(1234) 
myd <- data.frame (SN = 1:100, myv = round (rnorm(100, 5, 5), 2)) 
boxplot(myd$myv, col = "lightgreen") 

我想強調,以8.2到4.5之間的置信區間內落在箱線圖的一部分。此外,我想顯示不落入置信區間(> 8.2和小於4.5)的數據點的方式。輸出會是這樣的:

enter image description here

我只需要來實現這一目標。歡迎使用ggplot2或其他包裝解決方案。

+0

由於沒有顯示比例尺,所以我不知道什麼是yaxis boxplot,所以沒有進一步的進展!我可以看到答案試圖掌握答案 – shNIL

回答

6

我不明白這個情節,但你可以根據不同情況進行調整。

> boxplot(myd$myv, col = "lightgreen", ylim=c(-10,18))s 

一種方式來獲得透明的顏色是從與col2rgb名爲顏色提取RGB值,然後傳回與適當縮放值RGB:

> col2rgb("purple") 
#  [,1] 
#red 160 
#green 32 
#blue 240 
> rect(0.7, 4.5, 1.3, 8.2, col= rgb(red=160/255, green=32/255, blu=240/255, 0.4)) 

需要構建一個邏輯矢量,可以選擇點值,也成爲「計算」這樣的值的數量爲points功能的基礎:

> points(x=rep(1, sum(myd$myv > 8.2 | myd$myv < 4.5)), 
     y= myd$myv[ myd$myv > 8.2 | myd$myv < 4.5 ] , 
     col="orange", pch=19, bg="orange") 

內置到S-佩奇...:enter image description here

+0

偉大的解決方案,謝謝! – shNIL

0

使用gridBase

set.seed(1234) 
myd <- data.frame (SN = 1:100, myv = round (rnorm(100, 5, 5), 2)) 
boxplot(myd$myv, col = "lightgreen") 
sp <- baseViewports() 
pushViewport(sp$plot) 
grid.rect(default.units='native', width= 1,height=8.2-4.5 , 
      gp=gpar(fill=rgb(1,0,0,0.5)), y = 3) 
grid.points(x = rep(1,6) ,y=c(-4,-2,3,9,10,11), 
     gp=gpar(col=rgb(1,1,0,0.5),default.units='native')) 

enter image description here

+0

我可能需要進行一些調整,以將置信區間放置在適當的位置並縮小置信區間框。謝謝您的解決方案,太棒了! – shNIL

+1

@shNIL我說這是一個快速的解決方案,我很抱歉,你沒有顯示你已經嘗試過,所以這是最低限度。 – agstudy

+0

謝謝!對不起,我遲到了回答你的問題 – shNIL

4

這裏一個快速的解決方案是ggplot答案的一個版本。與Sven's answer

interval <- c(4.5, 8.2) 
myd <- within(myd, group <- myv >= interval[1] & myv <= interval[2]) 

開始ggplot代碼將

ggplot(myd, aes(x = 0, y = myv)) + 
    geom_boxplot(fill = "lightgreen") + 
    annotate("rect", ymin = interval[1], ymax = interval[2], 
      xmin = -1/2, xmax = 1/2, fill = "blue", alpha = 0.25) + 
    geom_point(data=myd[!myd$group,], shape = 21, 
       colour = "black", fill = "orange") + 
    scale_x_continuous("", breaks = NULL) + 
    theme_bw() 

箱線圖本身是直線前進。藍色的矩形是最重要的註釋。最重要的是,將數據限制在範圍之外(如爲group計算)。 scale_x_continuous擺脫了x軸符號,theme_bw()給出了更平坦的背景和網格線。

enter image description here

你可以做更大的點通過給sizegeom_point層,和其他調整也是可能的。