Как я могу исправить порядок столбцов? - PullRequest
0 голосов
/ 18 октября 2018

Я хочу построить ежемесячное процентное изменение двух метрик ошибок (MAE, RMSE), но порядок графиков не верный.Они должны идти горизонтально сверху вниз как H1, H2, H3, и т. Д. И заканчиваться H12 справа внизу.Вместо них они идут H1, H10, H11, H12 через вершину (я предполагаю, потому что первое число после H - 1).Может кто-нибудь показать мне, как это исправить, пожалуйста?

Код ...

library(ggplot2)
# dataset
metric=c(rep("MAE" , 12) , rep("RMSE" , 12) )
horizon=rep(c("H1" , "H2" , "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "H11", "H12") , 2)
Perc_Change=c(-24,-55,-40,0,0,-2,-22,-28,-12,-12,-2,-8,-15,-44,-37,0,0,3,-21,-28,-7,-15,3,-9)
data=data.frame(metric,horizon,Perc_Change)

# Faceting
ggplot(data, aes(y=Perc_Change, x=metric, color=metric, fill=metric)) + 
  geom_bar( stat="identity") +    
  facet_wrap(~horizon)

и сюжет выглядит как ... enter image description here

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Понял это, добавив поле счетчика во фрейм данных.

Новый код:

library(ggplot2)
# dataset
metric=c(rep("MAE" , 12) , rep("RMSE" , 12) )
horizon=rep(c("January 2017" , "February 2017" , "March 2017", "April 2017", "May 2017", "June 2017",
              "July 2017", "August 2017", "September 2017", "October 2017", "November 2017", "December 2017") , 2)
Perc_Change=c(-24,-55,-40,NA,NA,-2,-22,-28,-12,-12,-2,-8,-15,-44,-37,NA,NA,3,-21,-28,-7,-15,3,-9)
count=rep(c(1,2,3,4,5,6,7,8,9,10,11,12),2)
data=data.frame(count,metric,horizon,Perc_Change)

# Faceting
ggplot(data, aes(y=Perc_Change, x=metric, fill=metric)) + 
  geom_bar( stat="identity") +    
  facet_wrap(count~horizon)+scale_fill_manual(values=c("darkblue", "darkred"))

, который производит ...

enter image description here

0 голосов
/ 18 октября 2018

Вы можете добавить 0 к каждому 1-9.

library(ggplot2)
# dataset
metric=c(rep('MAE' , 12) , rep('RMSE' , 12) )
horizon=c('H01' , 'H02' , 'H03', 'H04', 'H05', 'H06', 'H07', 'H08', 'H09', 'H10', 'H11', 'H12')
Perc_Change=c(-24,-55,-40,0,0,-2,-22,-28,-12,-12,-2,-8,-15,-44,-37,0,0,3,-21,-28,-7,-15,3,-9)
data=data.frame(metric,horizon,Perc_Change)

# Faceting
ggplot(data, aes(y=Perc_Change, x=metric, color=metric, fill=metric)) + 
  geom_bar( stat='identity') +    
  facet_wrap(~horizon)

Это приводит к следующему изображению enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...