#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)