plotly: range regler auf der x-Achse (Datum) mit benutzerdefinierten start – / Enddatum

Gibt es eine option, um die rangeslider option in der plotly – Paket, so dass Sie fügen Sie einen Schieberegler, UND geben Sie die range ist die Standardeinstellung. Jetzt der folgende code fügt den regler, aber standardmäßig wird der gesamte Datumsbereich ausgewählt ist.

library(plotly)

df <- data.frame(Date = seq(as.Date("2016-01-01"), as.Date("2016-08-31"), by="days"),
                 Value = sample(100:200, size = 244, replace = T))

p <- plot_ly(data = df, x = Date, y = Value, type = "line") %>%
  layout(xaxis = list(rangeslider = list(type = "date")  ))
p

Ich würde gerne in der Lage, geben Sie den ersten Bereich – zum Beispiel, zeigen nur den letzten Monat und erlaubt es dem Benutzer, um das Angebot erweitern, wenn er dies wünscht. In der Dokumentation zu suggerieren scheint, dass es keine solche option und ich würde eher nicht gehen, die benutzerdefinierte javascript-Weg.

Irgendwelche Ideen?

InformationsquelleAutor BogdanC | 2016-09-23



One Reply
  1. 7

    Es herausgefunden, es war in der Dokumentation, ich weiß nicht, wie ich Sie vermisst habe. Daten umgewandelt werden müssen, um die Millisekunden seit der Epoche – die unten Ansatz ist ein wenig rau, man könnte versuchen, zu schreiben eine einfache Funktion um den code einfacher zu Lesen ist:

    p <- plot_ly(data = df, x = Date, y = Value, type = "line") %>%
      layout(xaxis = list(range = c( as.numeric(max(df$Date)-30) *86400000,
                                     as.numeric(max(df$Date)) * 86400000   ),
      rangeslider = list(type = "date")  ))
    p
    • Danke für diese Einstellung die Palette als Teil der x-Achse nicht rangeslider war der Schlüssel für mich.
    • Sie können auch eine Zeichenfolge verwenden Sie stattdessen die Millisekunden (also so etwas wie format(max(df$Date)- lubridate::days(30), "%Y-%m-%d")).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.