У меня есть аналогичный вопрос, ранее обсуждавшийся для барплотов , но с отсутствующим решением для боксплотов : Последовательная ширина для geom_bar в случае отсутствия данных
Я бы хотел создать боксов по группам . Однако данные для некоторых групп могут отсутствовать, что приводит к увеличению ширины ящиков с отсутствующими группами .
Я пытался указать geom_boxplot(width = value
) или geom_boxplot(varwidth = F)
, но это не работает.
Также, как было предложено для примера с диаграммами, я попытался добавить значения NA
для отсутствующей группы данных. Боксплот только пропускает пропущенные данные и расширяет его ширину. Я получил предупреждение:
Warning messages:
1: Removed 1 rows containing non-finite values (stat_boxplot).
Пустой пример:
# library
library(ggplot2)
# create a data frame
variety=rep(LETTERS[1:7], each=40)
treatment=rep(c("high","low"),each=20)
note=seq(1:280)+sample(1:150, 280, replace=T)
# put data together
data=data.frame(variety, treatment , note)
ggplot(data, aes(x=variety, y=note, fill=treatment)) +
geom_boxplot()
Boxplots имеют одинаковую ширину, если есть значения для каждой группы:
Удалить значения для 1 группы:
# subset the data to have a missing data for group:
data.sub<-subset(data, treatment != "high" | variety != "E" )
windows(4,3)
ggplot(data.sub, aes(x=variety, y=note, fill=treatment)) +
geom_boxplot()
Boxplot с отсутствующими данными шире других:
Есть ли способ, как сохранить постоянную ширину ящиков?