Игнорировать выбросы в ggplot2 boxplot + faceting + "free" options

Как я могу отрегулировать свою ось Y, чтобы игнорировать выбросы, например, в этом сообщении, но в более сложном случае, когда у меня есть 4 ящика и "свободный факел"

p < -ggplot (molten.DF, aes (x = класс, y = SOC, fill = class)) +   geom_boxplot() +   facet_grid (слой ~., весы = "свободный", пространство = "свободный" )

Как вы можете видеть на моей фигуре, учитывая, что выбросы в диапазоне по оси Y делают окна более трудными для чтения. Не важно, если в результате все еще видны некоторые выбросы, но я бы хотел сосредоточиться на коробках!

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

Ответ 1

Это, очевидно, зависит от того, что вы считаете выбросом. Если вам это возможно, вы можете установить 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))

Процедура, которую вы используете для получения верхних и нижних пределов, может измениться, но использование лимитов одинаков.