如何将R地图中的Leaflet保存为png或jpg文件?

问题描述 投票:0回答:2

我正在使用 Leaflet 包在 R 中创建地图。它工作得很好。我可以通过简单的 Export 导出 R 中的地图,但我需要从 R 中的脚本导出地图。我的简单代码是:

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

它可以工作,但是...输出的 png 文件是白色的空白。

r leaflet
2个回答
90
投票

这个非常好的解决方法出现了为了回答稍后在这里提出的问题。请注意,您需要安装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")

这是生成的图像。


更新:

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


0
投票

我还发现,如果你没有在管理模式下打开你的Rstudio,这个错误很可能会出现。我对mapshot 和mapview 也有同样的问题。但是当我在管理模式下使用 Rstudio 时,相同的代码可以完美运行。

© www.soinside.com 2019 - 2024. All rights reserved.