Сохранение диаграммы сети Sankey 3 с использованием только кода
Я создал диаграмму Сэнки в R, используя networkD3
пакет, который я хотел бы сохранить как статическое изображение, используя код вместо нажатия кнопки "Экспорт" -> "Сохранить как изображение...".
Текущий код, который я пробовал (используя эту диаграмму Санки в качестве примера):
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()
Все, что я получаю, это пустая белая коробка, когда я открываю изображение.
1 ответ
Решение
Самое простое рабочее решение, которое я нашел до сих пор:
- Установите PhantomJS. Например, используя Homebrew для OSX -
brew install phantomjs
- Установите rbokeh -
install.packages("rbokeh")
Затем:
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")
Результат выглядит не очень хорошо, но это может послужить отправной точкой для исследований и улучшений.
РЕДАКТИРОВАТЬ: вот еще одно потенциальное решение с использованием webshot
пакет.