2013-10-03 36 views
1

我查看了網絡並發現了很多關於抖動和更改異常值形狀的內容,但似乎無法找到有關此特定問題的任何內容。更改抖動盒線圖中所有異常值的形狀

我想要一個帶有抖動數據點的黑白boxplot - 我可以做到這一點。

我也想改變異常值的形狀。雖然有多個案例的分數爲4,但其中只有一個變成空心圓。

我假設如果一個特定級別的數據點被認爲是異常值,其餘的值將被視爲異常值。

這是一個編碼錯誤還是我錯過了一個統計類的方式? 如果它是一個編碼的東西,我怎樣才能讓它們變得空洞?

顯然我的「聲望」需要10才能獲得附加圖像!我希望這是有道理的,沒有它雖然

這裏是我的代碼:

plot <- ggplot(phase2.3, aes(Group, Score)) 

plot + geom_point (position = position_jitter(w = 0.1, h = 0.2)) + 
geom_boxplot (outlier.shape = 1) + xlab("Group") + theme_bw(20) 
+0

如果您向我們提供劇情數據,則不需要附加圖片!發佈'dput(phase2.3)'的結果,以便我們可以將它複製/粘貼到R.(如果你不能共享數據或者它很大,請製作一個[可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)使用內置數據集或模擬數據。) – Gregor

+0

scatterplot('geom_point')點抖動,但異常值boxplot沒有(我不認爲有一個直接的方法來抖動他們)。分別查看每個geom的情節,這可能會更有意義。 –

+0

感謝您的幫助,但影子提供了一個解決方案。 –

回答

0

你可能要計算,這點是超出範圍由你自己。這是geom_boxplot標準示例的擴展,它顯示瞭如何使用plyr找到異常值。

# load packages 
require(plyr) 
require(ggplot2) 
# find outliers 
df <- ddply(mtcars, "cyl", function(x){ 
    iqr <- quantile(x[,"mpg"], c(.25, .75)) # inter-quartile-range 
    whisker <- iqr+c(-1.5, 1.5)*diff(iqr) # whiskers-range 
    x[,"shape"] <- ifelse(x[,"mpg"] < whisker[1] | x[,"mpg"]>whisker[2], 1, 16) 
    return(x) 
}) 
# plot 
p <- ggplot(df, aes(factor(cyl), mpg)) 
p + geom_boxplot() # without jittering 
# adding shape manualy 
p + geom_boxplot(outlier.size=-Inf) + 
    geom_jitter(aes(shape=factor(shape))) + 
    scale_shape_manual(guide=FALSE, values=c("16"=16, "1"=1)) 
+0

優秀的解決方案謝謝你!我可以問一個調整嗎?單個數據點出現在箱形圖前,而不是後面。以前,我使用geom_point和geom_boxplot的順序確保只能看到方框以外的點。有什麼方法可以調整嗎? –

+0

解決方案是重新排序代碼(Gracias mi Amigo!):p + geom_jitter(aes(shape = factor(shape)))+ scale_shape_manual(guide = FALSE,values = c(「16」= 16,「1」= 1))+ geom_boxplot(outlier.size = -Inf)+ geom_boxplot(outlier.size = -Inf) –