Rbokeh барплот переупорядочен по оси х
Вот простой пример барплота, выраженного в Rbokeh.
library(rbokeh)
# total yield per variety
figure() %>%
ly_bar(variety, yield, data = lattice::barley, hover = TRUE) %>%
theme_axis("x", major_label_orientation = 90)
Результат показан ниже
Вопрос 1) Я хочу построить бары, переупорядоченные по оси X по доходности в порядке убывания
Я знаю, что есть простой способ сделать это в ggplot с помощью функции 'reorder', но я не знаю, как это сделать в Rbokeh.
Как я могу это сделать?
Вопрос 2) Запустив код выше, я вижу это сообщение об ошибке, что это значит и как я могу решить эту проблему?
Warning messages:
1: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
2: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
3: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
4: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
5: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
6: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
7: In structure(x, class = unique(c("AsIs", oldClass(x)))) :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
Consider 'structure(list(), *)' instead.
1 ответ
Решение
По первому вопросу: вы можете контролировать порядок категориальных осей, указав порядок в xlim
* Но сначала нужно сгруппировать "разнообразие". Я сделал:
barley_data <- lattice::barley %>%
group_by(variety) %>%
summarise(yield = sum(yield))
Затем сгенерируйте график:
figure(xlim = barley_data$variety[order(-barley_data$yield)]) %>%
ly_bar(variety, yield, data = barley_data, hover = TRUE) %>%
theme_axis("x", major_label_orientation = 90)
По второму вопросу, возможно, вы можете обратиться к этому.