4

我正在*.Rmd使用 HTML 小部件在 RStudio 中处理 R Markdown 文档 ()。我有一张由传单包中的函数创建的地图,包括由该addLegend()函数创建的图例。然后是由d3heatmap包的d3heatmap()函数创建的热图。当我使用 Run All Chunks 运行代码时,查看器窗格中显示的输出看起来不错。当我使用 Knit HTML 运行代码时,弹出窗口中出现的输出缺少图例。

为了保持图例显示在地图上,我需要做什么,即使我之后显示热图?

以下是您可以自己尝试的示例。它基于http://rstudio.github.io/leaflet/legends.html并要求您从http://data.okfn.org/data/datasets/geo-boundaries-world-110m下载 countries.geojson 数据.

在此示例中使用 Knit HTML,如果我包含 heatmap,则使用{r, eval=TRUE},传单地图上没有图例如果我排除热图,使用{r, eval=FALSE},传单地图上有一个图例

我正在使用 R 版本 3.2.3 (2015-12-10),平台:x86_64-w64-mingw32/x64(64 位),运行于:Windows 7 x64(内部版本 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)
```
4

1 回答 1

2

传单和 d3heatmap 共享同一个名为 .info 的 CSS 类。当我取消选中 .info 的 css 选项时,您可以再次看到图例。

您必须使用 className 参数手动重新分配 CSS 类,如下所示: addLegend("bottomright", className = "legendbox", pal = pal, values = ~gdp_md_est,

您必须为新类附加额外的 CSS 设置。

网络捕获

于 2016-01-16T08:58:54.393 回答