将传单图渲染为 R 中的栅格?
render leaflet plots as raster in R?
我意识到这在很大程度上违背了使用交互式 leaflet
地图的目的,但我正在写一本传统的纸质书,我想展示 R 的 leaflet
包是如何工作的。我正在用 LaTeX 写这本书并用 knitr
渲染。有没有办法将 leaflet
地图渲染为光栅图像,以便将其包含在本书中?
这是一个最小的例子:
library(leaflet)
map <- leaflet() %>%
addTiles() %>%
addMarkers(lng = -77.03673, lat = 38.89761)
现在,如果我尝试像这样的块:
<<>>=
map
@
我收到这个错误:
Error in validateCssUnit(sizeInfo$width): "\maxwidth" is not a valid CSS unit
(e.g., "100%", "400px", "auto")
尝试另存为 PNG 也不起作用:
<<>>=
png(filename = "test.png")
map
dev.off()
@
map
不继承自 ggplot
,因此 ggsave
也不起作用。
有什么方法可以让它工作吗?
最近有人在 . If you don't mind installing PhantomJS 上提出问题,下面的代码应该可以帮助您从 leaflet(或 mapview) 地图。剩下要做的唯一一件事就是不要在你的书中显示 saveWidget
和 webshot
代码,而是导入并显示由此创建的 png 文件。
## install 'webshot' package
library(devtools)
install_github("wch/webshot")
## load packages
library(leaflet)
library(htmlwidgets)
library(webshot)
## create map
m <- leaflet() %>%
addTiles() %>%
addMarkers(lng = -77.03673, lat = 38.89761)
## save html to png
saveWidget(m, "leaflet_map.html", selfcontained = FALSE)
webshot("leaflet_map.html", file = "leaflet_map.png",
cliprect = "viewport")
## optionally display image when using knitr
# p <- knitr::include_graphics("leaflet_map.png")
这里是一些用于演示目的的 LaTeX 输出。如果有人感兴趣,可以从 GitHub.
获得完整的 .Rnw 源文件
我意识到这在很大程度上违背了使用交互式 leaflet
地图的目的,但我正在写一本传统的纸质书,我想展示 R 的 leaflet
包是如何工作的。我正在用 LaTeX 写这本书并用 knitr
渲染。有没有办法将 leaflet
地图渲染为光栅图像,以便将其包含在本书中?
这是一个最小的例子:
library(leaflet)
map <- leaflet() %>%
addTiles() %>%
addMarkers(lng = -77.03673, lat = 38.89761)
现在,如果我尝试像这样的块:
<<>>=
map
@
我收到这个错误:
Error in validateCssUnit(sizeInfo$width): "\maxwidth" is not a valid CSS unit
(e.g., "100%", "400px", "auto")
尝试另存为 PNG 也不起作用:
<<>>=
png(filename = "test.png")
map
dev.off()
@
map
不继承自 ggplot
,因此 ggsave
也不起作用。
有什么方法可以让它工作吗?
最近有人在 saveWidget
和 webshot
代码,而是导入并显示由此创建的 png 文件。
## install 'webshot' package
library(devtools)
install_github("wch/webshot")
## load packages
library(leaflet)
library(htmlwidgets)
library(webshot)
## create map
m <- leaflet() %>%
addTiles() %>%
addMarkers(lng = -77.03673, lat = 38.89761)
## save html to png
saveWidget(m, "leaflet_map.html", selfcontained = FALSE)
webshot("leaflet_map.html", file = "leaflet_map.png",
cliprect = "viewport")
## optionally display image when using knitr
# p <- knitr::include_graphics("leaflet_map.png")
这里是一些用于演示目的的 LaTeX 输出。如果有人感兴趣,可以从 GitHub.
获得完整的 .Rnw 源文件