2017-05-08 3 views
0

Ich habe ein Sankey-Diagramm in R erstellt, mit dem networkD3 Paket, das ich als ein statisches Bild speichern möchte, mit Code statt auf "Exportieren" -> ' Als Bild speichern ... '.Speichern von NetzwerkD3 Sankey-Diagramm mit nur Code

Der aktuelle Code I (mit this Sankey Diagramm als Beispiel) versucht haben, ist:

library(networkD3) 

URL <- paste0(
    "https://cdn.rawgit.com/christophergandrud/networkD3/", 
    "master/JSONdata/energy.json") 
Energy <- jsonlite::fromJSON(URL) 
# Plot 
jpeg(filename = "Sankey.jpg", width = 4000, height = 4000) 
sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source", 
       Target = "target", Value = "value", NodeID = "name", 
       units = "TWh", fontSize = 12, nodeWidth = 30) 
dev.off() 

Alles, was ich bin, obwohl eine leere weiße Feld ist immer, wenn ich aber das Bild öffnen.

+0

Leider scheint dies nicht einfach zu sein. Die Antwort auf diese ähnliche Frage erfordert Code, der PhantomJS verwendet: http://stackoverflow.com/questions/35056733/how-to-capture-html-output-as-png-in-r – neilfws

Antwort

2

Simplest Arbeits Lösung, die ich bisher gefunden habe ist:

  1. PhantomJS installieren. Zum Beispiel mit Homebrew für OSX - brew install phantomjs
  2. Installieren rbokeh - install.packages("rbokeh")

Dann:

library(rbokeh) 
sn <- sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source", 
      Target = "target", Value = "value", NodeID = "name", 
      units = "TWh", fontSize = 12, nodeWidth = 30) 
widget2png(sn, "sankey.png") 

Das Ergebnis nicht so toll aussieht, aber dies könnte als Ausgangspunkt für die Forschung und Verbesserungen dienen .

EDIT: here's another potential solution mit dem webshot Paket.

Verwandte Themen