web-dev-qa-db-fra.com

Utiliser R et plot.ly - comment puis-je écrire un script pour enregistrer ma sortie en tant que page Web

Je veux faire des graphiques interactifs en utilisant R et plot.ly . Lorsque je lance le code suivant dans R-Studio, il génère un graphique interactif. 

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)

Après avoir créé ce graphique, lorsque je clique sur le bouton "Exporter" dans la fenêtre de tracé de R-Studio, cela me donne la possibilité d'enregistrer le tracé en tant que page Web. Comment puis-je scripter le processus de sauvegarde des parcelles produites en tant que pages Web? Mon objectif ultime est d'exécuter Rscripts de manière itérative à partir d'un script bash pour générer plusieurs pages Web. 

17
Slavatron

Assignez l'objet plot_ly à une variable, puis utilisez htmlwidgets::saveWidget() pour enregistrer le fichier actuel, comme suit:

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")
35
Andrew

Mise à jour de Andrew answer pour R-3.5.1 et plotly-4.8.0, c'est-à-dire: 

library(plotly)
set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
p <- plot_ly(d, x = ~carat, y = ~price, text=~paste("Clarity : ", clarity))
htmlwidgets::saveWidget(as_widget(p), "index.html")

Pour que cela fonctionne work , vous devez également installer pandoc. Sur CentOS/RedHat, faites yum install pandoc pandoc-citeproc. Sous Mac OSX, utilisez homebrew , faites brew install pandoc.

Cette solution a été testée et fonctionne sous OSX 10.13.6 sous R-3.5.1.

0