繁体   English   中英

渲染传单图作为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也不会工作。

有没有办法让这项工作?

关于如何将RStudio地图中的传单保存为png或jpg文件,最近有一个问题 如果您不介意安装PhantomJS ,下面的代码可以帮助您从传单 (或mapview )地图创建静态图像。 剩下要做的唯一事情就是不要在你的书中显示saveWidgetwebshot代码,而是导入并显示从中创建的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源文件。

胶乳

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM