Le problème central de l'OP semble avoir est qu'ils ont très lourds données tailed - et je ne pense pas que la plupart des réponses actuelles portent réellement sur cette question du tout , donc je fais la promotion de mon commentaire précédent à une réponse.
Si vous souhaitez rester avec des boîtes à moustaches, certaines options sont répertoriées ci-dessous. J'ai créé quelques données dans R qui montrent le problème de base:
set.seed(seed=7513870)
x <- rcauchy(80)
boxplot(x,horizontal=TRUE,boxwex=.7)
La moitié médiane des données est réduite à une minuscule bande de quelques mm de large. Le même problème affecte la plupart des autres suggestions - y compris les parcelles QQ, les graphiques à bandes, les parcelles ruche / chaleur d'abeille et les parcelles violon.
Maintenant, quelques solutions potentielles:
1) transformation ,
Si les journaux ou les inverses produisent une boîte à moustaches lisible, ils peuvent être une très bonne idée, et l'échelle d'origine peut toujours être affichée sur l'axe.
Le gros problème est qu'il n'y a parfois pas de transformation «intuitive». Il y a un problème plus petit qui, bien que les quantiles eux-mêmes se traduisent assez bien par des transformations monotones, les clôtures ne le font pas; si vous venez de tracer les données transformées (comme je l'ai fait ici), les moustaches seront à des valeurs x différentes de celles du tracé d'origine.
Ici, j'ai utilisé un péché hyperbolique inverse (asinh); c'est une sorte de log dans les queues et similaire à linéaire près de zéro, mais les gens ne le trouvent généralement pas une transformation intuitive, donc en général je ne recommanderais pas cette option à moins qu'une transformation assez intuitive comme log soit évidente. Code pour cela:
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) les ruptures d'échelle - prenez des valeurs extrêmes et compressez-les dans des fenêtres étroites à chaque extrémité avec une échelle beaucoup plus compressée qu'au centre. Je recommande fortement une pause complète sur toute l'échelle si vous faites cela.
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) le rognage des valeurs extrêmes (que je ne conseillerais pas normalement sans l'indiquer très clairement, mais il ressemble à l'intrigue suivante, sans les "<5" et "2>" à chaque extrémité), et
4) ce que j'appellerai des "flèches" extrêmement aberrantes - similaires au découpage, mais avec le nombre de valeurs ajustées indiqué à chaque extrémité
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)))