2016-01-03 3 views
11

Ich möchte einige interaktive Diagramme mit R und plot.ly machen. Wenn ich in R-Studio den folgenden Code ausführe, wird ein interaktives Diagramm erstellt.Verwenden von R und plot.ly - Wie skript ich meine Ausgabe als Webseite speichern

library(plotly) 
set.seed(100) 
d <- diamonds[sample(nrow(diamonds), 1000), ] 
plot_ly(d, x = carat, y = price, text = paste("Clarity: ", clarity), 
    mode = "markers", color = carat, size = carat) 

Nach diesen Graphen produziert, wenn ich im Plot-Fenster von R-Studio auf der Schaltfläche „Exportieren“ klicken, es gibt mir die Möglichkeit, die Handlung als eine Webseite zu speichern. Wie kann ich das Speichern von produzierten Plots als Webseiten skripten? Mein ultimatives Ziel ist es, Rscripts iterativ aus einem Bash-Skript heraus auszuführen, um mehrere Webseiten zu erzeugen.

Antwort

22

Weisen Sie das plot_ly Objekt einer Variablen und dann htmlwidgets::saveWidget() verwenden, um die aktuelle Datei zu speichern, etwa so:

library(plotly) 
set.seed(100) 
d <- diamonds[sample(nrow(diamonds), 1000), ] 
p <- plot_ly(d, x = carat, y = price, text = paste("Clarity: ", clarity), 
      mode = "markers", color = carat, size = carat) 
htmlwidgets::saveWidget(as.widget(p), "index.html") 
+0

Diese sehr ermutigend sieht. Welche Pakete verwendest du neben plotly und htmlwidgets? Ich erhalte die Fehlermeldung, dass R die Funktion "as.widget" nicht finden kann. Ich renne R mit den folgenden Paketen geladen: Plotly, HTMLWidgets, HTMLtools, Knitr. Sollte ich ein anderes Paket geladen haben? Hier ist die vollständige Fehlermeldung: Fehler in resolveSize (x, x $ sizingPolicy, standalone = standalone, knitrOptions = knitrOptions): konnte die Funktion "as.widget" nicht finden – Slavatron

+1

'as.widget' ist [Teil von plotly] (https: //github.com/openensci/plotly/blob/d16be22f284ad36fba3c14f2b3cc015064e74cf3/man/as.widget.Rd), aber es wurde erst Ende Dezember hinzugefügt, sodass Sie möglicherweise eine ältere Version der Bibliothek ausführen. – Andrew

+0

Hmmm, gerade aktualisierte Plotly (jetzt läuft Version 2.0.16) und ich bekomme immer noch den gleichen Fehler ... – Slavatron