2015-11-30 27 views
6

In questa domanda, Exporting PNG files from Plotly in R Ho chiesto come esportare i grafici Plotly su disco.Esportazione di file PNG da Plotly in R senza Internet

Ho utilizzato la funzione plotly_IMAGE, ma quest'ultima ha rilevato che la funzione utilizza i server Internet di Plotly.

La domanda è, ora che Plotly JavaScript è locale, come posso creare un file locale PNG senza Internet?

Ho provato questo codice, ma senza successo:

library(plotly) 
png(filename = "test.png") 
plot_ly(x = 1:10) 
dev.off() 

L'idea è di rendere programaticaly, senza click sul pulsante di esportazione sopra il grafico.

risposta

2

avrete bisogno di installare Phantom (http://phantomjs.org/download.html), che è abbastanza facile e si può provare questo:

library(plotly) 
library(webshot) 
library(htmlwidgets) 

m <- plot_ly(x = 1:10) 
saveWidget(as.widget(m), "temp.html") 
webshot("temp.html", file = "test.png", 
     cliprect = "viewport") 

troverete temp.html e temp.png nella directory di lavoro.

+0

Ho scaricato phantomjs. Ma quando sto eseguendo lo script sopra ho il seguente errore: 'Errore in find_phantom(): PhantomJS non trovato. Puoi installarlo con webshot :: install_phantomjs(). Se è installato, assicurati che l'eseguibile di phantomjs possa essere trovato tramite la variabile PATH. Hai qualche idea su come risolvere questo problema? – Joni

+1

lo hai scaricato, ma l'hai installato? – MLavoie

+0

Ho fatto doppio clic sul file 'phantomjs' in' bin'directory e il terminale ha aperto la lettura: 'Ultimo accesso: lunedì 30 maggio 10:47:54 su ttys001 /Users/Jonathan/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs; Uscita; JonathasMacBook: ~ Jonathan $ /Users/Jonathan/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs; Uscita; phantomjs> ' – Joni

3

Hanno aggiunto una nuova funzione export al pacchetto plotly. Ma a mia conoscenza fa la stessa cosa che la risposta di @ MLavoie suggerisce. Utilizzo:

p <- plot_ly(...) 
export(p, file = "test.png")