ओपी के लिए केंद्रीय समस्या यह है कि उनके पास बहुत भारी पूंछ वाले डेटा हैं - और मुझे नहीं लगता कि अधिकांश वर्तमान उत्तर वास्तव में उस मुद्दे से निपटते हैं , इसलिए मैं अपनी पिछली टिप्पणी का उत्तर देने के लिए प्रचार कर रहा हूं।
यदि आप बॉक्सप्लॉट्स के साथ रहना चाहते हैं, तो नीचे कुछ विकल्प सूचीबद्ध हैं। मैंने R में कुछ डेटा बनाए हैं जो मूल समस्या को दर्शाता है:
set.seed(seed=7513870)
x <- rcauchy(80)
boxplot(x,horizontal=TRUE,boxwex=.7)
डेटा के बीच का आधा हिस्सा मिमी की एक जोड़ी की छोटी पट्टी से कम हो जाता है। यही समस्या अधिकांश अन्य सुझावों - क्यूक्यू प्लॉट्स, स्ट्रिप चार्ट्स, बीहाइव / बीस्वर्म प्लॉट्स और वायलिन प्लॉट्स को दर्शाती है।
अब कुछ संभावित समाधान:
1) परिवर्तन ,
यदि लॉग, या व्युत्क्रम एक पठनीय बॉक्सप्लॉट बनाते हैं, तो वे एक बहुत अच्छा विचार हो सकता है, और मूल पैमाने को अभी भी अक्ष पर दिखाया जा सकता है।
बड़ी समस्या यह है कि कभी-कभी कोई 'सहज' परिवर्तन नहीं होता है। एक छोटी सी समस्या है कि जब क्वांटिल्स स्वयं मोनोटोनिक परिवर्तनों के साथ अच्छी तरह से अनुवाद करते हैं, तो बाड़ नहीं आते; यदि आप केवल ट्रांसफ़ॉर्म किए गए डेटा को बॉक्सप्लॉट करते हैं (जैसा कि मैंने यहां किया था), मूंछें मूल प्लॉट की तुलना में अलग-अलग एक्स-वैल्यू पर होंगी।
यहाँ मैंने एक व्युत्क्रम-अतिशयोक्ति-पाप (asinh) का उपयोग किया; यह पूंछ की तरह लॉग-इन की तरह है और शून्य के पास रैखिक के समान है, लेकिन लोग आमतौर पर इसे एक सहज परिवर्तन नहीं पाते हैं, इसलिए सामान्य तौर पर मैं इस विकल्प की सिफारिश नहीं करूंगा जब तक कि लॉग की तरह एक काफी सहज परिवर्तन नहीं हो। उस के लिए कोड:
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)))