Группировка столбцов с помощью ggplot2

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть одна таблица. С помощью этой таблицы я хочу построить график столбцов.Итак, ниже вы можете увидеть данные:

 MEASURE_ERROR_TS_MODEL<-structure(list(Model = structure(c(6L, 8L, 1L, 9L, 5L, 7L, 2L, 
3L, 10L, 4L), .Label = c("ARIMA", "CART", "CTREE", "Ensamble_ML", 
"Ensamble_SM", "ETS", "LM", "STL", "TBATS", "XGBoost"), class = "factor"), 
    RMSE = c(12.89, 6.08, 11.46, 5.23, 4.92, 4.86, 4.78, 4.65, 
    4.64, 3.532698), MAE = c(11.79, 4.7, 8.57, 4, 4.09, 2.97, 
    3.05, 2.84, 3.05, 2.208528), Approach = structure(c(2L, 2L, 
    2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L), .Label = c("Machine learning", 
    "Statistical modelling"), class = "factor")), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))
  

Итак, следующий шаг — вывести эти данные на гистограмму.Итак, чтобы сделать это, я пытаюсь использовать этот код, но график не такой, каким я хочу быть

 gplot(data=MEASURE_ERROR_TS_MODEL, aes(x=Model, y=MAE, fill=Approach),palette = c("#0073C2FF", "#FC4E07"))  
  geom_bar(
    stat="identity",
           position=position_dodge(), colour="black")
  

Из приведенной ниже диаграммы вы можете видеть, что эти бары не сгруппированы, и я хочу создать группу (например, зеленые полосы с левой стороны, а красные полосы с правой стороны).Итак, кто-нибудь может помочь мне сделать это?

Ответ №1:

Возможно, вы можете попробовать фасеты :

 library(ggplot2)
ggplot(data=MEASURE_ERROR_TS_MODEL, aes(x=Model, y=MAE, fill=Approach))  
  geom_bar(stat="identity",position=position_dodge())   
  facet_wrap(.~Approach, scales = 'free')
  

введите описание изображения здесь

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

1. Отлично. Возможно ли упорядочить эти данные в порядке убывания? Заранее благодарю вас

2. Вы можете использовать reorder : aes(x=reorder(Model, -MAE), y=MAE, fill=Approach)