2016-06-11 18 views
4

ich folgende Daten:R Plotly: Kann nicht neu ordnen, x-Achse, wenn Achstyps Kategorie ist

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

Ich mag würde ein Liniendiagramm mit RTPAD_TOT gegen FISCAL_YEAR_WEEK, die von dem anderen varables gruppiert haben. FISCAL_YEAR_WEEK steht für die Steuerwoche eines Geschäftsjahres. 2016-11 bedeutet die 11. Woche des Geschäftsjahres 2016. Hier ist meine plotly Code:

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) 

Dies ist jedoch nicht angeordnet, um in meiner x-Achse ergibt: plotly jumbled up my x-axis

Offensichtlich würde ich 2016 gerne -09 vor 2016-10 im Diagramm kommen. Aber mein FISCAL_YEAR_WEEK in der X-Achse ist alles durcheinander.

ggplot2 Mit dem gleichen Grundstück zu konstruieren, wird meine x-Achse nicht durcheinander up:

ggplot(data = myData, 
     aes(x = FISCAL_YEAR_WEEK, 
      y = RTPAD_TOT, 
      group = interaction(MOTOR_VEND_ID, HGA_SUPPLIER)))) + 
    geom_line() 

Das Aussehen meiner Achse aus dem obigen Code wird, bis alle gut sein ...

ggplotly() 

Ich wollte meinen ggplot in plotly konvertieren. Nach dem Befehl ggplotly() wird meine X-Achse wieder durcheinander gebracht.

Ich brauche die type = "category" Option in meiner X-Achse, da ich nur die Daten sehen möchte, die in den Daten vorhanden sind. Außerdem wird plotly 2016-09 im September 2016 statt der 9. Steuerwoche 2016 fälschen. Ich baue eine glänzende Anwendung, wo meine X-Achse vom Benutzer geändert werden kann, um nicht nur eine Datetime-Variable, sondern auch andere Variable zu sein auch. Manchmal sind es Seriennummern wie 001, 002, 120. Es macht also keinen Sinn, es numerisch/datetime zu machen, da dies eine große Lücke zwischen 002 und 120 ergibt. Also die type = "category" Option wird hier benötigt.

Ich habe auch versucht die FISCAL_YEAR_WEEK faktorisieren, aber es funktioniert nicht:

myData$FISCAL_YEAR_WEEK <- factor(myData$FISCAL_YEAR_WEEK,levels=sort(unique(myData$FISCAL_YEAR_WEEK))) 

meine x-Achse wird nach wie vor plotly in

purzeln werden
+0

Hat jemand sonst einen Fehler mit seinem Beispielcode, der besagt, dass nicht genügend Farben auf der Palette sind? –

Antwort

9

Bis vor kurzem der einzige Weg zu sortieren Eine kategoriale Achse war das Sortieren der Daten der ersten kategorischen Spur des Graphen (siehe Etienne's Antwort auf plot.ly community site).

That's changed, und Sie können die kategoriale Achse sortieren Sie, indem Sie categoryorder in eine der beiden folgenden Weisen wünschen erreichen:

ax <- list(
    type = "category", 
    categoryorder = "category ascending", 
    showgrid = TRUE, 
    showline = TRUE, 
    autorange = TRUE, 
    showticklabels = TRUE, 
    ticks = "outside", 
    tickangle = 0 
) 

Oder:

ax <- list(
    type = "category", 
    categoryorder = "array", 
    categoryarray = sort(unique(myData$FISCAL_YEAR_WEEK)), 
    showgrid = TRUE, 
    showline = TRUE, 
    autorange = TRUE, 
    showticklabels = TRUE, 
    ticks = "outside", 
    tickangle = 0 
) 

Für mehr auf plot.ly kategorische Achse sortieren, siehe ihre reference doc.

+0

Ich bin mir nicht sicher warum, aber nur die zweite Option funktionierte für mich –

Verwandte Themen