如何将R小册子中的Leaflet保存为png或jpg文件?

sms*_*sms 33 r leaflet

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

png("test_png.png")
(m <- leaflet() %>% addTiles())
dev.off()
Run Code Online (Sandbox Code Playgroud)

它工作但...输出png文件是白色空白.

fde*_*sch 52

这个非常好的解决方法出现在回答一个稍后在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")
Run Code Online (Sandbox Code Playgroud)

这是最终的图像.

地图


更新:

现在webshot已经在CRAN和引进的正式发布mapshotMapView的包装,这本手册的解决方法是不再需要.现在,代码就像这样:

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")
Run Code Online (Sandbox Code Playgroud)

啤酒厂

  • 我认为尽管有“mapview package”,但“webshot()”函数仍然必须用于存储高分辨率地图。 (2认同)