Я использую преобразование ..count..
в geom_bar
и получаю предупреждение position_stack требует непересекающихся интервалов x , когда некоторые из моих категорий имеют небольшое число.
Это лучшеобъяснил, используя некоторые фиктивные данные (мои данные включают в себя направление и скорость ветра, и я сохраняю названия, относящиеся к этому)
#make data
set.seed(12345)
FF=rweibull(100,1.7,1)*20 #mock speeds
FF[FF>60]=59
dir=sample.int(10,size=100,replace=TRUE) # mock directions
#group into speed classes
FFcut=cut(FF,breaks=seq(0,60,by=20),ordered_result=TRUE,right=FALSE,drop=FALSE)
# stuff into data frame & plot
df=data.frame(dir=dir,grp=FFcut)
ggplot(data=df,aes(x=dir,y=(..count..)/sum(..count..),fill=grp)) + geom_bar()
Это отлично работает, и в результате график показывает частоту направлений, сгруппированных по скорости.Важно, чтобы класс скорости с наименьшим количеством отсчетов (здесь «[40,60)») имел 5 отсчетов.
Однако большее количество классов скорости приводит к предупреждению.Например, при
FFcut=cut(FF,breaks=seq(0,60,by=15),ordered_result=TRUE,right=FALSE,drop=FALSE)
класс скорости с наименьшим количеством импульсов (теперь «[45,60)») будет иметь только 3 счета, а ggplot2 предупредит, что
position_stackтребует неперекрывающихся интервалов x
, и на графике будут отображаться данные в этой категории, распределенные вдоль оси x. Кажется, что 5 - это минимальный размер для группы, чтобы он мог работать правильно.
Я был бы признателен, если бы знал, является ли это функцией или ошибкой в stat_bin
(который geom_bar
использует) или если я просто злоупотребляю geom_bar
.
Также, любые предложения, как обойти это, будут оценены.
С уважением