R Plotly: невозможно переставить ось X, когда тип оси является категорией
У меня есть следующие данные:
myData <- data.frame(FISCAL_YEAR_WEEK = c('2016-09','2016-09','2016-09','2016-09','2016-09','2016-10','2016-10','2016-10','2016-10','2016-10','2016-10','2016-10','2016-10','2016-11','2016-11','2016-11','2016-11','2016-12','2016-12','2016-12','2016-12','2016-12','2016-12','2016-14','2016-14','2016-14','2016-14'),
MOTOR_VEND_ID = c('7','E','F','F','M','7','9','E','E','F','F','M','R','7','E','F','F','E','E','F','F','M','M','7','E','F','M'),HGA_SUPPLIER=c('RHO','RHO','HWY','RHO','RHO','RHO','RHO','HWY','RHO','HWY','RHO','RHO','RHO','RHO','RHO','HWY','RHO','HWY','RHO','HWY','RHO','HWY','RHO','RHO','RHO','RHO','RHO'),
RTPAD_TOT = c(0,0,0,0,0,0,420,6,0,0,0,20,1,76,0,0,0,76,62,0,0,0,0,6,1,1,0))
Я хотел бы иметь график сRTPAD_TOT
противFISCAL_YEAR_WEEK
сгруппированы по другим varables.FISCAL_YEAR_WEEK
представляет финансовую неделю в финансовом году. 2016-11 означает 11-ю неделю финансового года 2016. Вот мой сюжетный код:
ax <- list(
type = "category",
showgrid = TRUE,
showline = TRUE,
autorange = TRUE,
showticklabels = TRUE,
ticks = "outside",
tickangle = 0
)
ay <- list(
range = c(0,300),
dtick = 50,
showgrid = TRUE,
showline = TRUE,
autorange = FALSE,
showticklabels = TRUE,
ticks = "outside",
tickangle = 0
)
plot_ly(myData,
x = FISCAL_YEAR_WEEK,
y = RTPAD_TOT,
type = 'scatter',
mode = 'markers+lines',
color = interaction(MOTOR_VEND_ID,HGA_SUPPLIER)) %>%
layout(xaxis = ax, yaxis = ay)
Тем не менее, это приводит к тому, что моя ось X не упорядочена по порядку:
Очевидно, я бы хотел, чтобы 2016-09 были на графике до 2016-10. Но мойFISCAL_YEAR_WEEK
по оси X все перемешано.
С помощьюggplot2
чтобы построить такой же сюжет не перепутать мою ось X:
ggplot(data = myData,
aes(x = FISCAL_YEAR_WEEK,
y = RTPAD_TOT,
group = interaction(MOTOR_VEND_ID, HGA_SUPPLIER)))) +
geom_line()
Появление моей оси из приведенного выше кода будет все хорошо, пока ...
ggplotly()
Я хотел преобразовать свой ggplot в заговор. Послеggplotly()
команда, моя ось X будет снова перемешана.
мне нужноtype = "category"
опцию в моей оси х, так как я хочу видеть только даты, которые присутствуют в данных. Кроме того, plotly будет неверно истолковывать 2016-09 как сентябрь 2016 вместо 9-й финансовой недели 2016. Я создаю блестящее приложение, где моя ось x может быть изменена пользователем, чтобы она была не только переменной даты / времени, но и другой переменной. также. Иногда это могут быть серийные номера, такие как 001, 002, 120. Поэтому не имеет смысла указывать числовое значение / дату и время, поскольку это приведет к огромному разрыву между 002 и 120. Таким образом,type = "category"
Опция нужна здесь.
Я также пытался разложитьFISCAL_YEAR_WEEK
но это не работает:
myData$FISCAL_YEAR_WEEK <- factor(myData$FISCAL_YEAR_WEEK,levels=sort(unique(myData$FISCAL_YEAR_WEEK)))
моя ось х все равно будет перемешана в заговоре