Я делал несколько коробочных графиков с тремя переменными в ggplot и долго пытался получить то, что хотел, потому что данные на моей оси x были числовыми, а не факторными.После прочтения документации (http://www.sthda.com/english/wiki/ggplot2-box-plot-quick-start-guide-r-software-and-data-visualization) и других вопросов здесь ( Измените метки оси X в каждом фасете и ggplot: упорядочение диаграмм с несколькими переменными y для каждой группы непрерывного x ) я понял, что мне нужно преобразовать мои данные оси X в факторы.
> str(HT_2)
Classes ‘data.table’ and 'data.frame': 540 obs. of 4 variables:
$ T : int -1 -2 -3 -4 0 1 2 3 4 -1 ...
$ Month : Factor w/ 12 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Gauge : chr "Aconcagua" "Aconcagua" "Aconcagua" "Aconcagua" ...
$ Norm_Flow_m3_s: num 1.49 1.77 1.99 2.02 1.17 ...
- attr(*, ".internal.selfref")=<externalptr>
Следующая строка кода решила мою проблему
ggplot(HT_2, aes(x=Month, y=Norm_Flow_m3_s,fill=Gauge)) + geom_boxplot()
Но та же строка не работает, когдаНа оси x есть целые данные
> str(HT_2)
Classes ‘data.table’ and 'data.frame': 540 obs. of 4 variables:
$ T : int -1 -2 -3 -4 0 1 2 3 4 -1 ...
$ Month : int 1 1 1 1 1 1 1 1 1 1 ...
$ Gauge : chr "Aconcagua" "Aconcagua" "Aconcagua" "Aconcagua" ...
$ Norm_Flow_m3_s: num 1.49 1.77 1.99 2.02 1.17 ...
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "sorted")= chr "Month"
Даже если я попытаюсь сгруппировать свои данные оси x
ggplot(HT_2, aes(x=Month, y=Norm_Flow_m3_s,fill=Gauge,group=Month)) + geom_boxplot()
Кто-нибудь знает, почему это происходит? Или как я могу включить числовые данные в полесюжет?