在 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.width
和 fig.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.width
和 fig.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
数字。
我想更改 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.width
和 fig.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.width
和 fig.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
数字。