web-dev-qa-db-ja.com

リーフレットをRマップにpngまたはjpgファイルとして保存する方法は?

Leafletパッケージを使用してRでマップを作成しています。完全に機能します。 Rにマップをエクスポートするには、単にエクスポートを使用しますが、Rのスクリプトからマップをエクスポートする必要があります。単純なコードは次のとおりです。

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

それは動作しますが...出力PNGファイルは白い空白です。

28
sms

この非常に素晴らしい回避策が現れました 質問への応答で 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で公式にリリースされ、mapviewにmapshotが導入されました。 パッケージでは、この手動の回避策は不要になりました。これで、コードは次のようになります。

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

breweries

48
fdetsch