我正在使用
HTML小部件在RStudio中处理R Markdown文档(* .Rmd).我有一个由传单包中的函数创建的映射,包括由addLegend()函数创建的图例.然后是d3heatmap包的d3heatmap()函数创建的热图.当我使用Run All Chunks运行代码时,Viewer窗格中显示的输出看起来很好.当我使用Knit HTML运行代码时,弹出窗口中显示的输出缺少图例.
即使我之后显示热图,我还需要做些什么才能使图例显示在地图上?
以下是您可以自己尝试的示例.它基于http://rstudio.github.io/leaflet/legends.html并要求您从http://data.okfn.org/data/datasets/geo-boundaries-world-110m下载countries.geojson数据.
在此示例中使用Knit HTML,如果我使用{r,eval = TRUE}包含热图,则传单地图上没有图例.如果我使用{r,eval = FALSE}排除热图,则传单地图上会有一个图例.
我正在使用R版本3.2.3(2015-12-10),平台:x86_64-w64-mingw32 / x64(64位),运行于: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)
```
最佳答案 leaflet和d3heatmap共享同一个名为.info的CSS类
当我取消选中.info的css选项时,您可以再次看到图例.
您必须使用className参数手动重新分配CSS类,如下所示:
addLegend(“bottomright”,className =“legendbox”,pal = pal,values = ~gdp_md_est,
您必须为新类添加其他CSS设置.