Центральна проблема ОП , як видається, є те , що вони мають дуже важкі-хвостаті дані - і я не думаю , що більшість справжніх відповідей фактично маємо справу з цим питанням на всіх , тому я просування мій попередній коментар до відповіді.
Якщо ви хочете залишитися з боксерськими плитами, деякі варіанти перераховані нижче. Я створив деякі дані в R, які показують основну проблему:
set.seed(seed=7513870)
x <- rcauchy(80)
boxplot(x,horizontal=TRUE,boxwex=.7)
Середня половина даних зводиться до крихітної смужки шириною пару мм. Ця ж проблема стосується більшості інших пропозицій - включаючи сюжети QQ, смугові діаграми, вулик / бджолині сюжети та скрипки.
Тепер кілька потенційних рішень:
1) перетворення ,
Якщо журнали або обертання створюють читабельну коробку, вони можуть бути дуже хорошою ідеєю, і оригінальний масштаб все ще може бути показаний на осі.
Велика проблема полягає в тому, що іноді немає «інтуїтивної» трансформації. Існує менша проблема, що хоча кванти самі перекладаються монотонними перетвореннями досить добре, огорожі не мають; якщо ви просто застосуєте трансформовані дані (як я це робив тут), вуса будуть відрізнятися x-значеннями, ніж у вихідному сюжеті.
Тут я використав зворотний-гіперболічний-гріх (асинх); це щось на зразок журналу в хвостах і подібне до лінійного біля нуля, але люди, як правило, не знаходять це інтуїтивно зрозумілим перетворенням, тому в цілому я б не рекомендував цей варіант, якщо не очевидно досить інтуїтивно зрозуміле перетворення на зразок журналу. Код для цього:
xlab <- c(-60,-20,-10,-5,-2,-1,0,1,2,5,10,20,40)
boxplot(asinh(x),horizontal=TRUE,boxwex=.7,axes=FALSE,frame.plot=TRUE)
axis(1,at=asinh(xlab),labels=xlab)
2) масштабні перерви - візьміть крайні залишки і стисніть їх у вузькі вікна на кожному кінці зі значно більш стислим масштабом, ніж у центрі. Я настійно рекомендую зробити повну перерву в усьому масштабі, якщо ви це зробите.
opar <- par()
layout(matrix(1:3,nr=1,nc=3),heights=c(1,1,1),widths=c(1,6,1))
par(oma = c(5,4,0,0) + 0.1,mar = c(0,0,1,1) + 0.1)
stripchart(x[x< -4],pch=1,cex=1,xlim=c(-80,-5))
boxplot(x[abs(x)<4],horizontal=TRUE,ylim=c(-4,4),at=0,boxwex=.7,cex=1)
stripchart(x[x> 4],pch=1,cex=1,xlim=c(5,80))
par(opar)
3) обрізання крайніх переживачів (що я зазвичай не радив би, не вказуючи це дуже чітко, але це виглядає як наступний сюжет, без "<5" і "2>" в будь-якому кінці), і
4) те, що я називатиму «стрілками-екстремалами» - аналогічно обрізці, але з урахуванням підрахунку значень на кожному кінці
xout <- boxplot(x,range=3,horizontal=TRUE)$out
xin <- x[!(x %in% xout)]
noutl <- sum(xout<median(x))
nouth <- sum(xout>median(x))
boxplot(xin,horizontal=TRUE,ylim=c(min(xin)*1.15,max(xin)*1.15))
text(x=max(xin)*1.17,y=1,labels=paste0(as.character(nouth)," >"))
text(x=min(xin)*1.17,y=1,labels=paste0("< ",as.character(noutl)))