在 rmarkdown 中调整传单地图的大小 html

Adjust size of leaflet map in rmarkdown html

我想更改 html 文档中 leaflet 地图输出的高度和宽度。有没有一种简单的方法可以在不涉及整个 CSS 业务的情况下在 R markdown 中执行此操作?

```{r}
library(leaflet)
library(dplyr)

m <- leaflet() %>% setView(lng = -71.0589, lat = 42.3601, zoom = 12)
m %>% addTiles() 
```

理想情况下,我希望地图的宽度与代码块的宽度相同,如下所示。

您可以为整个文档设置全局图形大小...但我认为您的代码块会重新缩放,而图像不会。

library(knitr)
opts_chunk$set(fig.width=12, fig.height=8)

其实我没用leaflets查过。希望这段代码仍然有效。

我发现更改 fig.widthfig.height 并没有改变我的传单地图的大小。但是,换一个不同的 parameter/option 就可以了。

尝试在代码块的 header 中使用此更改 width/height:

{r, width = 40, height = 30}

或者,另一件对我有用的事情是使用它(在这种情况下,不要在块 header:

中放置任何东西

m <- leaflet(width = "100%") %>%

这很好用:

SomeData %>% 
  leaflet(height=2000, width=2000) %>% 
  addTiles() %>% 
  addMarkers(clusterOption=markerClusterOptions())

这里的 SomeData 是一个包含列的数据框:Lat 和 Long。

详细说明其他答案:

我的理解是 fig.widthfig.height 不适用于 leaflet(或 plotly),因为它们是 html 对象,而不是 'true figures' 就 knitr 而言。 leaflet(和 plotly)确实会响应 out.width,这就是它起作用的原因。



万一有人和我有类似情况:

我有一个代码块,它有条件地包含 leaflet 地图(用于 html 输出),或使用 knitr::include_graphics(p1, p2, p3, p4) 保存 4 倍 ggplot .png 图像(用于pdf 输出)。为了在 2x2 网格中平铺 4 个 ggplot 对象,我必须设置 out.width = '50%',但这也减少了 leaflet 输出的宽度。

解决方案是在代码中包含 leaflet(width = '100%'),在块头中包含 out.width = '50%'leaflet(width = '100%') 似乎覆盖了 out.width = '50%',在 html 输出中给我全尺寸 leaflet,或者 50% 宽度 ggplot 数字。