【发布时间】:2016-02-20 18:20:27
【问题描述】:
我意识到这在很大程度上违背了使用交互式 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 也不起作用。
有什么办法可以做到这一点吗?
【问题讨论】:
-
像
dygraph,leaflet是基于htmlwidgets。根据this answer by Yihui“您不能在 LaTeX 文档中使用任何基于 htmlwidgets 的包”。但也要阅读 cmets;可能有解决方法。 -
这很有道理——感谢您的链接。我发现的最佳解决方案是在 RStudio 中渲染,然后使用 Export... 功能并另存为 PNG。
标签: r leaflet knitr r-markdown