Подтвердить что ты не робот

Как сохранить Листовку в карте R в виде файла png или jpg?

Я использую пакет Leaflet для создания карт в R. Он отлично работает. Я могу экспортировать карты в R с помощью Export, но мне нужно экспортировать карты из script в R. Мой простой код:

png("test_png.png")
(m <- leaflet() %>% addTiles())
dev.off()

Он работает, но... выходной файл png белый.

4b9b3361

Ответ 1

Это очень приятное обходное решение появилось в ответ на вопрос, заданный чуть позже здесь на SO. Обратите внимание, что вам необходимо установить PhantomJS, чтобы получить следующий код для работы.

## install 'webshot' package
library(devtools)
install_github("wch/webshot")

## load packages
library(leaflet)
library(htmlwidgets)
library(webshot)

## create map
m <- leaflet() %>% addTiles()

## save html to png
saveWidget(m, "temp.html", selfcontained = FALSE)
webshot("temp.html", file = "Rplot.png",
        cliprect = "viewport")

И вот получившееся изображение.

map


Обновление:

Теперь, когда webshot был официально выпущен на CRAN и с введением mapshot в пакете mapview, это временное решение вручную больше не требуется. Теперь код просто выглядит следующим образом:

library(mapview)

## 'leaflet' objects (image above)
m <- leaflet() %>% addTiles()
mapshot(m, file = "~/Rplot.png")

## 'mapview' objects (image below)
m2 <- mapview(breweries91)
mapshot(m2, file = "~/breweries.png")

пивоваренные заводы