R Markdown 中的 leaflet() 之后的 d3heatmap() 导致 addLegend() 消失
d3heatmap() after leaflet() in R Markdown causes addLegend() to disappear
我正在使用 HTML 小部件在 RStudio 中处理 R Markdown 文档 (*.Rmd
)。我有一张由 leaflet 包中的函数创建的地图,包括由 addLegend()
函数创建的图例。然后是 d3heatmap 包的 d3heatmap()
函数创建的热图。当我 运行 使用 运行 All Chunks 的代码时,查看器窗格中显示的输出看起来不错。当我 运行 使用 Knit HTML 的代码时,出现在弹出窗口 window 中的输出缺少图例。
我需要做什么才能使图例显示在地图上,即使之后显示热图也是如此?
下面是一个您可以自己尝试的示例。它基于 http://rstudio.github.io/leaflet/legends.html and requires you to download the countries.geojson data from http://data.okfn.org/data/datasets/geo-boundaries-world-110m.
在此示例中使用 Knit HTML,如果我包含热图,使用 {r, eval=TRUE}
,没有图例 在传单地图上。 如果我排除热图,使用{r, eval=FALSE}
,传单地图上有图例。
我正在使用 R 版本 3.2.3 (2015-12-10),平台:x86_64-w64-mingw32/x64(64 位),运行ning 下:Windows 7 x64 ( build 7601) Service Pack 1,带 RStudio
版本 0.99.491 和软件包 d3heatmap_0.6.1、rgdal_1.1-3、sp_1.2-1 和 leaflet_1.0.0.
---
title: "Testing"
output:
html_document: default
---
Some text.
```{r, message=FALSE}
library(leaflet)
library(rgdal)
countries <- readOGR("json/countries.geojson", "OGRGeoJSON",
verbose=FALSE)
map <- leaflet(countries) %>% addTiles()
pal <- colorNumeric(
palette = "YlGnBu",
domain = countries$gdp_md_est)
map %>%
addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1,
color = ~pal(gdp_md_est)) %>%
addLegend("bottomright", pal = pal, values = ~gdp_md_est,
title = "Est. GDP (2010)",
labFormat = labelFormat(prefix = "$"),
opacity = 1)
```
Some text.
```{r, eval=TRUE}
library(d3heatmap)
d3heatmap(mtcars)
```
传单和 d3heatmap 共享相同的 CSS class .info
当我取消选中 .info 的 css 选项时,您可以再次看到图例。
您必须使用 className 参数手动 re-assign CSS class,如下所示:
addLegend("bottomright", className = "legendbox", pal = pal, values = ~gdp_md_est,
您必须为新 class 添加额外的 CSS 设置。
我正在使用 HTML 小部件在 RStudio 中处理 R Markdown 文档 (*.Rmd
)。我有一张由 leaflet 包中的函数创建的地图,包括由 addLegend()
函数创建的图例。然后是 d3heatmap 包的 d3heatmap()
函数创建的热图。当我 运行 使用 运行 All Chunks 的代码时,查看器窗格中显示的输出看起来不错。当我 运行 使用 Knit HTML 的代码时,出现在弹出窗口 window 中的输出缺少图例。
我需要做什么才能使图例显示在地图上,即使之后显示热图也是如此?
下面是一个您可以自己尝试的示例。它基于 http://rstudio.github.io/leaflet/legends.html and requires you to download the countries.geojson data from http://data.okfn.org/data/datasets/geo-boundaries-world-110m.
在此示例中使用 Knit HTML,如果我包含热图,使用 {r, eval=TRUE}
,没有图例 在传单地图上。 如果我排除热图,使用{r, eval=FALSE}
,传单地图上有图例。
我正在使用 R 版本 3.2.3 (2015-12-10),平台:x86_64-w64-mingw32/x64(64 位),运行ning 下:Windows 7 x64 ( build 7601) Service Pack 1,带 RStudio 版本 0.99.491 和软件包 d3heatmap_0.6.1、rgdal_1.1-3、sp_1.2-1 和 leaflet_1.0.0.
---
title: "Testing"
output:
html_document: default
---
Some text.
```{r, message=FALSE}
library(leaflet)
library(rgdal)
countries <- readOGR("json/countries.geojson", "OGRGeoJSON",
verbose=FALSE)
map <- leaflet(countries) %>% addTiles()
pal <- colorNumeric(
palette = "YlGnBu",
domain = countries$gdp_md_est)
map %>%
addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1,
color = ~pal(gdp_md_est)) %>%
addLegend("bottomright", pal = pal, values = ~gdp_md_est,
title = "Est. GDP (2010)",
labFormat = labelFormat(prefix = "$"),
opacity = 1)
```
Some text.
```{r, eval=TRUE}
library(d3heatmap)
d3heatmap(mtcars)
```
传单和 d3heatmap 共享相同的 CSS class .info 当我取消选中 .info 的 css 选项时,您可以再次看到图例。
您必须使用 className 参数手动 re-assign CSS class,如下所示:
addLegend("bottomright", className = "legendbox", pal = pal, values = ~gdp_md_est,
您必须为新 class 添加额外的 CSS 设置。