блокплощадка ggplot с медианой, первым и третьим процентилями R

#r #ggplot2 #boxplot

#r #ggplot2 #блокплощадка

Вопрос:

Я хотел бы сделать a boxplot с двумя разными группами только с тремя разными измерениями (это вообще возможно?). Вот мои данные:

 data <- data.frame( "County" = 1:6, Median = c(5,7,8,2,4, 5), Low = c( 0.5,2,4,1,2,3),
                    High = c(10,12,11,9,10,15), ID = c("TRUE", "TRUE", "FALSE", "TRUE", "FALSE", "FALSE"))  
 

Я хотел бы создать boxplot графство с округом по оси x, медианой, низким и высоким значением по оси y и идентификатором (либо true / false) в качестве заполнения. В результате я хочу шесть разных (в данном случае) блокплощадок (три ложных и три истинных). Но я не уверен, как это сделать с моими данными, поскольку у меня нет ymin и ymax .

Я пробовал это, но он не учитывает нижний и верхний:

 ggplot(dat, aes(x = County, y = Median, lower = Low, upper = High, fill = ID))  
  geom_boxplot()
 

Кто-нибудь сталкивался с такой же проблемой?

Ответ №1:

Блокплощадка параметризуется:

  • ymin : нижний усов
  • lower : 25-й процентиль
  • middle : 50-й процентиль
  • upper : 75-й процентиль
  • ymax : верхний ус

Как вы правильно указали, кажется, что мы не можем сопоставить эти 5 параметров только с тремя наблюдениями на группу. Однако вас может заинтересовать geom_crossbar() слой, который придаст вам вид, похожий на boxplot, без усов, и для этого требуется всего 3 параметра. Пример ниже:

 library(ggplot2)

data <- data.frame( "County" = 1:6, Median = c(5,7,8,2,4, 5), Low = c( 0.5,2,4,1,2,3),
                    High = c(10,12,11,9,10,15), ID = c("TRUE", "TRUE", "FALSE", "TRUE", "FALSE", "FALSE")) 

ggplot(data, aes(x = as.factor(County), 
                 y = Median, 
                 ymin = Low, 
                 ymax = High))  
  geom_crossbar(aes(colour = ID))
 

Комментарии:

1. Да, я так и думал. Но да, geom_crossbar работал отлично! Спасибо!!