Ve ben bu cevapların çoğu aslında, sorunu çözme sanmıyorum - OP gibi görünüyor merkezi bir sorun onlar çok ağır kuyruklu veriye sahip olmasıdır hiç bir cevap benim önceki yorumunu teşvik ediyorum böylece.
Kutu grafikleriyle kalmak istiyorsanız, bazı seçenekler aşağıda listelenmiştir. Temel sorunu gösteren R bazı veri yarattık:
set.seed(seed=7513870)
x <- rcauchy(80)
boxplot(x,horizontal=TRUE,boxwex=.7)
Verilerin orta yarısı, birkaç mm genişliğinde küçük bir şeride indirgenmiştir. Aynı sorun, QQ grafikleri, şerit grafikleri, arı kovanı / balmumu grafikleri ve keman grafikleri dahil olmak üzere diğer önerilerin çoğunu da etkiler.
Şimdi bazı potansiyel çözümler:
1) dönüşüm ,
Günlükler veya ters çevrilebilir bir kutu çizimi oluşturuyorsa, bunlar çok iyi bir fikir olabilir ve orijinal ölçek yine de eksende gösterilebilir.
En büyük sorun bazen 'sezgisel' dönüşüm olmamasıdır. Daha küçük bir problem var ki, kantilleri kendileri de monotonik dönüşümlerle yeterince iyi çevirirken, çitler yok; (burada yaptığım gibi) dönüştürülen verileri kutuya yerleştirirseniz, bıyıklar orijinal grafikten farklı x değerlerinde olacaktır.
Burada ters hiperbolik-sin (asinh) kullandım; kuyruklarda günlük benzeri bir şeydir ve sıfıra yakın doğrusalya benzer, ancak insanlar genellikle sezgisel bir dönüşüm bulamazlar, bu yüzden genellikle günlük gibi oldukça sezgisel bir dönüşüm açık olmadığı sürece bu seçeneği önermem. Bunun kodu:
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) kireç kırıcılar - aşırı uçları alın ve her iki uçta merkezden çok daha sıkıştırılmış bir ölçekle dar pencerelere sıkıştırın. Bunu yaparsanız tüm ölçek boyunca tam bir mola tavsiye ederim.
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) aşırı aykırı değerlerin kırpılması (normalde bunu çok net bir şekilde belirtmeden tavsiye etmem, ancak her iki uçta "<5" ve "2>" olmadan bir sonraki arsa gibi görünüyor) ve
4) Ben aşırı-aykırı "oklar" olarak adlandıracağım - kırpmaya benzer, ancak her iki uçta gösterilen kesilmiş değerlerin sayısı ile
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)))