2012-05-16 45 views
10

如何調整我的Y軸以忽略異常值,如this post,但在更具挑戰性的情況下,我有4個箱形曲線和「自由切面」佈局?忽略ggplot2 boxplot + faceting +「free」選項中的異常值

p < - ggplot(molten.DF,AES(X =類,Y = SOC,填充=類))+ geom_boxplot()+ facet_grid(層〜,鱗片= 「免費」,空間。 =「free」)

正如您在我的圖中所看到的,考慮到Y軸範圍內的異常值會使框更難以閱讀。如果在結果中仍然可以看到某些異常值,這並不重要,但我希望真正關注這些框。

boxplot with free scale, all outliers are (unfortuately) visibles

+4

如果您發佈一個可重複使用的示例,以便我們使用它,對於我們來說,幫助您變得更加容易。 –

回答

2

這顯然取決於你認爲是一個局外人。如果你可以計算它,你可以將你的ylim設置爲這個值,並讓這些點出圖表。

例如,如果假設上限和下限是Q3 + 1.5 IQR和Q1 - 1.5 IQR,這是箱線圖通常具有其異常值限制計算出的方式,你將有:

upper.fence <- quantile(x)[4] + 1.5*IQR(x) 
lower.fence <- quantile(x)[2] - 1.5*IQR(x) 

然後你可以使用這些限制爲y值範圍:

my.ggplot + coord_cartesian(ylim=c(lower.fence, upper.fence)) 

您使用,讓您的上限和下限可改變的過程,但使用的範圍是相同的。

+1

我認爲可以安全地假設OP想要ggplot定義的異常值:http://docs.ggplot2.org/current/geom_boxplot.html(Details section)。此外,'ylim'方法僅適用於單個箱形圖,因爲一些箱形圖的異常值將在其他箱的圍欄內。 –