此问题的所有文件都在following git中:
我正在尝试在带有类别的传单中绘制类别地图图例显示字符向量作为标签:
首先我加载所需的软件包
library(rgdal)
library(raster)
library(kableExtra)
library(rasterVis)
library(leaflet)
Codes <- readRDS("Codes.rds")
LandCover <- readRDS("LandCover.rds")
如果我们查看土地覆盖物栅格,那是我所分类的栅格用光栅包中的ratify
制成
LandCover
## class : RasterLayer
## dimensions : 832, 680, 565760 (nrow, ncol, ncell)
## resolution : 30.00002, 29.99993 (x, y)
## extent : 288800.8, 309200.8, 6367272, 6392231 (xmin, xmax, ymin, ymax)
## crs : +proj=utm +zone=19 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
## source : memory
## names : LC_CHILE_2014_b
## values : 150, 932 (min, max)
## attributes :
## ID names IDs
## from: 150 Cultivos 150
## to : 932 Suelos rocosos 932
我想将name属性作为图例
它可以使用rasterVis软件包中的levelplot
功能:
rasterVis::levelplot(LandCover)
如果有效,数据也会重新放入Codes data.frame中。>
kable(Codes, caption = "Tabla de atributos del mapa") %>% kable_styling(bootstrap_options = c("striped", "hover"))
塔布拉地图码已选150文化212Nativo de Hoja Ancha251波斯尼亚植物学330糊状450马托拉莱斯510悍马士640库瓜德阿瓜800地表渗透物920elo鱼932墨西哥鳄[两项测试无效
pal <- colorFactor(rainbow(10), values(LandCover),
na.color = "transparent")
leaflet() %>% addTiles() %>% addRasterImage(LandCover, colors = pal, opacity = 0.8) %>% addLegend(pal = pal, values = values(LandCover),title = "Land Cover", labels = Codes$Selected)
在第二篇文章中,我认为将标签属性添加到addLegend
函数可以解决问题,但不起作用
pal <- colorFactor(rainbow(10), values(LandCover),
na.color = "transparent")
leaflet() %>% addTiles() %>% addRasterImage(LandCover, colors = pal, opacity = 0.8) %>% addLegend(pal = pal, values = values(LandCover),title = "Land Cover", labels = Codes$Selected)
此问题的所有文件都在下面的git中:我正在尝试在传单中绘制类别映射,并使用类别图例将字符向量显示为标签:首先加载软件包I ...
labFormat
的addLegend
参数来实现。诀窍是在transform
中使用labFormat
函数将RAT的ID重新映射到相应的标签。