2016-01-25 4 views
1

Как отображать отклонения в процентах в ящике?Показывать выбросы в процентах

Я не хочу видеть выбросы, отображаемые в виде точек. Я хотел бы видеть, что выбросы отображаются как процентные числа в коробке. Ниже изображений, как я хочу, выпадающие:

enter image description here

+0

Добро пожаловать в StackOverflow! Пожалуйста, прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com/questions/ 5963269/как к Make-A-пра-р-воспроизводимая-пример/5963610). Это облегчит вам помощь другим людям. – Jaap

+0

Будучи outlier означает (примерно), он находится за пределами заданного процента от общего количества точек. Поэтому я не понимаю, что вы подразумеваете под показателями отображения в процентах. Не могли бы вы представить числовой пример? – JulienD

ответ

1

Вот решение: мы вычисляем количество выбросов с выходом boxplot, удалите выбросы из графика, и сюжет пропорции вместо.

# simulate data 
x <- rnorm(1000) 
# first boxplot to get the stats 
p <- boxplot(x) 

# computing the proportion of outliers 
outsiders <- data.frame(text= paste0(c(length(p$out < p$stats[1])/p$n,length(p$out > p$stats[5])/p$n)*100,"%"), 
         y = p$stats[c(1,5)]) 

# real plot 
boxplot(x,outline=FALSE,ylim=c(p$stats[1]-1,p$stats[5]+1)) 
# we add the text in two steps because we need different adj 
text(x=1,labels=outsiders$text[1],y=outsiders$y[1],adj=c(0,1)) 
text(x=1,labels=outsiders$text[2],y=outsiders$y[2],adj=c(0,-.5)) 

enter image description here

+0

Большое спасибо за вашу помощь! Как я могу округлить проценты до одного десятичного знака или до ближайшего целого числа? – Mary

+0

use 'round()': 'round (c (length (p $ out

p $ stats [5])/p $ n) * 100,1) 'для 1 десятичной точки; измените 1 на 0 для ближайшего целого числа – scoa

Смежные вопросы