R Plotly: Não é possível reorganizar o eixo x quando o tipo de eixo é categoria
Eu tenho os seguintes dados:
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))
Eu gostaria de ter um gráfico de linhas comRTPAD_TOT
contraFISCAL_YEAR_WEEK
, agrupados pelas outras variáveis.FISCAL_YEAR_WEEK
representa a semana fiscal de um ano fiscal. 2016-11 significa a 11ª semana do ano fiscal de 2016. Aqui está o meu código de plotagem:
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)
No entanto, isso resulta no meu eixo x não organizado em ordem:
Obviamente, eu gostaria que 2016-09 viesse antes de 2016-10 no gráfico. Mas o meuFISCAL_YEAR_WEEK
no eixo x é tudo desordenado.
Usandoggplot2
para construir o mesmo gráfico não atrapalha meu eixo x:
ggplot(data = myData,
aes(x = FISCAL_YEAR_WEEK,
y = RTPAD_TOT,
group = interaction(MOTOR_VEND_ID, HGA_SUPPLIER)))) +
geom_line()
A aparência do meu eixo a partir do código acima ficará boa até ...
ggplotly()
Eu queria converter meu ggplot em plotagem. Depois deggplotly()
comando, meu eixo x será desordenado novamente.
Eu preciso dotype = "category"
no meu eixo x, pois eu só quero ver as datas presentes nos dados. Além disso, plotly interpretará mal 2016-09 como setembro de 2016, em vez da 9ª semana fiscal de 2016. Estou construindo um aplicativo brilhante em que meu eixo x pode ser alterado pelo usuário para ser não apenas uma variável de data e hora, mas outra variável também. Às vezes, podem ser números de série como 001, 002, 120. Portanto, não faz sentido torná-lo numérico / data / hora, pois isso criará uma enorme lacuna entre 002 e 120. Portanto, otype = "category"
opção é necessária aqui.
Eu também tentei fatorar oFISCAL_YEAR_WEEK
mas não funciona:
myData$FISCAL_YEAR_WEEK <- factor(myData$FISCAL_YEAR_WEEK,levels=sort(unique(myData$FISCAL_YEAR_WEEK)))
meu eixo x ainda será desordenado na plotagem