Как построить планку ошибок с фиксированным значением в R

У меня есть гистограмма, к которой мне нужно добавить полосу ошибок. Это должен быть диапазон ошибок, одинаковый для каждого столбца, поэтому он немного отличается от стандартных баров ошибок. В предыдущих вопросах обсуждались только планки погрешностей, зависящие от среднего или стандартного отклонения. введите здесь описание изображения

Я попробовал функцию стрелки

arrows(dat$usage_time, dat$usage_time-1, dat$usage_time, dat$usage_time+1, length=0.05, angle=90, code=3)

но это действительно не сработало. dat$usage_time - это целое число, которое должно быть координатой. В чем проблема?


person Juan    schedule 30.09.2018    source источник
comment
Ожидается, что вы предоставите отправную точку для кодирования в виде как данных, так и кода.   -  person IRTFM    schedule 01.10.2018
comment
См. Как сделать отличный воспроизводимый пример R. Вы должны предоставить воспроизводимый пример.   -  person steveb    schedule 01.10.2018


Ответы (1)


Да, вам необходимо предоставить данные и код. Тем не менее, мы будем работать с тем, что есть.

Первый вариант был изменен отсюда: https://datascienceplus.com/building-barplots-with-error-bars/ Предполагая, что ваши планки погрешностей +/-1 и с фиктивным набором данных:

x<-c(1,1,1, 1, 2,2,2)
y<-c(4,8,12,12,5,3,3)
d<-as.data.frame(cbind(x,y))
library(dplyr)
d2<- d %>%   group_by(x) %>%   summarise_at(mean, .vars = vars(y)) 

barplot<-barplot(height=d2$y, ylim=c(0, max(d2$y)+3))

text(x = barplot, y = par("usr")[3] - 1, labels = d2$x)

arrows(barplot,  d2$y-1, barplot, d2$y+1, length=0.05, angle=90, code=3)

И чтобы построить это в ggplot2, как насчет:

ggplot(data=d2, aes(x=x,  y=y)) + 
  geom_bar(fill="grey", width=.8, stat="identity") + 
  xlab("date") + ylab("usage time") + 

  geom_errorbar(aes(ymin=y-1, ymax=y+1),     width=.2) 
person Grubbmeister    schedule 01.10.2018
comment
Учитывая попытку OP использовать команду arrows, это говорит о том, что ggplot2 не используется. Однако, когда ОП предоставляет более полный вопрос, было бы хорошо предоставить более полный ответ ggplot2. - person steveb; 01.10.2018
comment
Ах, да - я забыл, что стрелка вызывается внутри geom_segment в ggplot2... В последнее время слишком много графиков. - person Grubbmeister; 01.10.2018